我正在尝试使用c ++扩展python3代码。所以我尝试了boost-python3。我遵循了wikibook的指示。
这是我的setup.py:
from distutils.core import setup
from distutils.extension import Extension
setup(name="PackageName",
ext_modules=[
Extension("ssss", ["ssss.cpp"],
libraries = ["boost_python38"])
])
我执行了python3 setup.py build
。
clang ++ -bundle -undefined dynamic_lookup -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk build / temp.macosx-10.15-x86_64-3.7 / ssss.o -L / usr / local / lib -L /usr/local/opt/openssl@1.1/lib -L / usr / local / opt / sqlite / lib -lboost_python38-mt -o build / lib.macosx-10.15-x86_64-3.7 / ssss.cpython-37m-darwin。所以
但是,当我转到ssss.so所在的子目录时,尝试进入import ssss
时会出现导入错误。
回溯(最近通话最近): 文件“”,第1行,位于 ImportError:dlopen(... / ssss / cpp_code / build / lib.macosx-10.15-x86_64-3.7 / ssss.cpython-37m-darwin.so,2):找不到符号:__Py_tracemalloc_config
引用自:/usr/local/opt/boost-python3/lib/libboost_python38-mt.dylib
应用于:平面名称空间 在/usr/local/opt/boost-python3/lib/libboost_python38-mt.dylib
我不知道这个奇怪的Symbol not found: __Py_tracemalloc_config
来自哪里。
我尝试过的事情:
brew uninstall numpy
pip3 uninstall numpy
brew install numpy
和
otool -L .../ssss/cpp_code/build/lib.macosx-10.15-x86_64-3.7/ssss.cpython-37m-darwin.so
... / ssss / cpp_code / build / lib.macosx-10.15-x86_64-3.7 / ssss.cpython-37m-darwin.so:
/usr/local/opt/boost-python3/lib/libboost_python38.dylib(兼容版本0.0.0,当前版本0.0.0)
/ usr / lib / libc ++。1.dylib(兼容版本1.0.0,当前版本800.6.0)
/usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本1281.0.0)
这是什么问题?