鉴于编译为共享库的Python,如何确定此库的名称和路径?
我正在寻找的输出类似于“/usr/local/lib/libpython2.7.so”或“/System/Library/Frameworks/Python.framework/Versions/2.6/Python”(用于框架构建)在OS X上。)
答案 0 :(得分:2)
我不确定如何或是否可以在Python本身内完成,但您可以使用标准工具来查找python可执行文件的共享库依赖项。
Linux:ldd <path>/python
Mac:otool -L <path>/python
Windows:在python.exe上运行dependencywalker
答案 1 :(得分:2)
在sudo yum install python3
import sysconfig
sysconfig.get_config_vars('LIBDIR', 'INSTSONAME')
# -> ['/usr/lib64', 'libpython3.7m.so.1.0']
编辑: 请注意,某些发行版(例如Linux和Python> = 3.8)将不再包含共享库,而是将静态链接到libpython3.8.a。
答案 2 :(得分:0)
请参阅https://pypi.org/project/find-libpython/
$ pip3 install find_libpython
$ python3 -c 'import find_libpython; print(find_libpython.find_libpython())'
/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/Python