2016-05-16 5 views
0

は私がpkg_resources.resource_filename:完全修飾共有ライブラリ名を返す方法は?ダーウィンのアナコンダPython3.5、以下の機能</p> <p><code>import pkg_resources pkg_resources.resource_filename('icqsol', 'icqLaplaceMatricesCpp') </code></p> <p>で

'/anaconda/lib/python3.5/site-packages/icqsol-0.3.19-py3.5-macosx-10.5-x86_64.egg/icqsol/icqLaplaceMatricesCpp.cpython-35m-darwin.so'

ノートで必要なものに対し

'//anaconda/lib/python3.5/site-packages/icqsol-0.3.19-py3.5-macosx-10.5-x86_64.egg/icqsol/icqLaplaceMatricesCpp'

のようなものを返します。スこの特定の場合、ffix '.cpython-35m-darwin.so'です。私はsetuptoolsがpython 3.5を使用するときに自動的にこの接尾辞を追加すると信じています - それはPython 2.7を使用するときは不在です。

誰も私が

import ctypes sharedLibName = ... lib = ctypes.cdll.LoadLibrary(sharedLibName))

を使用できるように、完全修飾された共有ライブラリを返す方法を知っていますか?事前にお手数をおかけします。

答えて

1

SOABIはお探しのキーです。 python2でNoneを返し、python3.5で関連する拡張ビットを返します。私は同様に拡張接尾辞を追加しましたが、本当にわからないことは、(SHLIB_EXTリターンPY3ためpy27ため".so"None、鉱山に)

>>> import sys 
>>> print(sys.version_info) 
sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0) 
>>> import sysconfig 
>>> sysconfig.get_config_vars('SOABI') 
['cpython-35m-darwin'] 
>>> sysconfig.get_config_vars().get('SHLIB_EXT', '.so') 
'.so' 
python3.5にどのように動作しますか
関連する問題