0

Darwin 上の Anaconda Python3.5 では、次の関数

import pkg_resources pkg_resources.resource_filename('icqsol', 'icqLaplaceMatricesCpp')

のようなものを返します

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

一方、私が必要なのは

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

この特定のケースでは、接尾辞「.cpython-35m-darwin.so」に注意してください。Python 3.5 を使用している場合、setuptools はこのサフィックスを自動的に追加すると思います。Python 2.7 を使用している場合は存在しません。

私が使用できるように、完全修飾共有ライブラリを返す方法を知っている人はいますか

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

? 助けてくれてありがとう

4

1 に答える 1

1

SOABI探しているキーです。python2 で返さNoneれ、python3.5 で関連する拡張ビットが返されます。拡張サフィックスも追加しましたが、それがpython3.5でどのように機能するかはよくわかりません(私の場合、py27とpy3でSHLIB_EXT返されます)".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'
于 2016-09-21T22:16:40.830 に答える