如何找出Python包含目录的位置?

kil*_*les 9 python

我知道在通过Homebrew安装Python后,我的include目录在这里:

/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7
Run Code Online (Sandbox Code Playgroud)

有没有办法让Python告诉我include/lib目录在哪里?有点像:

python -c "import sys; print '\n'.join(sys.path)"
Run Code Online (Sandbox Code Playgroud)

Jim*_*ard 18

我想,必须有一种更简单的方法来实现Python,当然,标准库中也有.使用get_paths来自sysconfig:

from sysconfig import get_paths
from pprint import pprint

info = get_paths()  # a dictionary of key-paths

# pretty print it for now
pprint(info)
{'data': '/usr/local',
 'include': '/usr/local/include/python2.7',
 'platinclude': '/usr/local/include/python2.7',
 'platlib': '/usr/local/lib/python2.7/dist-packages',
 'platstdlib': '/usr/lib/python2.7',
 'purelib': '/usr/local/lib/python2.7/dist-packages',
 'scripts': '/usr/local/bin',
 'stdlib': '/usr/lib/python2.7'}
Run Code Online (Sandbox Code Playgroud)

您还可以使用-m开关sysconfig来获取所有配置值的完整输出.

这应该是OS/Python版本无关,在任何地方使用它.:-)


Rob*_*obᵩ 6

在我的电脑上,命令是python-config --includes.确保使用python-config安装的自制软件,而不是默认的自制软件.

  • 尝试“python-config --help”或“python-config --libs”。 (2认同)

yoo*_*ghm 6

我的单行解决方案是

python -c "from sysconfig import get_paths as gp; print(gp()['include'])"
Run Code Online (Sandbox Code Playgroud)

如果您想将代码嵌入到 Unix shell(例如 bash)中,您必须使用转义双引号。

python -c "from sysconfig import get_paths as gp; print(gp()[\"include\"])"
Run Code Online (Sandbox Code Playgroud)