如何确定路径& Python共享库的名称?

时间:2010-10-16 16:40:10

标签: python

鉴于编译为共享库的Python,如何确定此库的名称和路径?

我正在寻找的输出类似于“/usr/local/lib/libpython2.7.so”或“/System/Library/Frameworks/Python.framework/Versions/2.6/Python”(用于框架构建)在OS X上。)

3 个答案:

答案 0 :(得分:2)

我不确定如何或是否可以在Python本身内完成,但您可以使用标准工具来查找python可执行文件的共享库依赖项。

Linux:ldd <path>/python
Mac:otool -L <path>/python
Windows:在python.exe上运行dependencywalker

答案 1 :(得分:2)

sudo yum install python3

之后,在 Amazon Linux 上测试了纯Python
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