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

时间:2016-01-28 20:17:30

标签: python

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

/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7

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

python -c "import sys; print '\n'.join(sys.path)"

3 个答案:

答案 0 :(得分:18)

我想,必须有更简单的方法从Python中执行此操作,当然,在标准库中也有。使用sysconfig中的get_paths

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'}

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

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

答案 1 :(得分:6)

在我的电脑上,命令为python-config --includes。确保使用安装了自制软件的python-config,而不是默认的。{/ p>

答案 2 :(得分:0)

我的一线解决方案是

python -c "from sysconfig import get_paths as gp; print(gp()['include'])"

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

python -c "from sysconfig import get_paths as gp; print(gp()[\"include\"])"