我知道在通过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版本无关,在任何地方使用它.:-)
在我的电脑上,命令是python-config --includes.确保使用python-config安装的自制软件,而不是默认的自制软件.
我的单行解决方案是
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)