我已经弄清楚如何检索python环境的include和site-package路径。例如,以下是one of multiple possibilities:
from distutils.sysconfig import get_python_lib, get_python_inc
print(get_python_lib()) # Prints the location of site-packages
print(get_python_inc()) # Prints the location of the include dir
然而,我无法找到一个健壮的方法来检索python环境的bin文件夹,也就是说,python本身和pip,pyinstaller,easy_install等工具通常驻留的文件夹。有谁知道如何从python中获取这条路径?
有些人可能会建议binpath = os.path.dirname(sys.executable)
。但是在Mac上,如果将python作为框架安装(binpath
指向:/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS
)
我可以使用哪种方式跨平台工作?
答案 0 :(得分:4)
安装程序可以将二进制文件放在文件系统的任何位置(给定权限)。但是,由于现在大多数软件包可能都安装了pip
,因此在安装发行版时,pip
本身会使用跨平台方法:
from pip.locations import bin_py
请注意,pip
包含在当前版本的Python中,因此这应该适用于所有地方。另外要提一下的是,安装在用户站点中的发行版会将其控制台脚本等放入用户站点,但是您也有一个用于查找用户bin的属性:
pip.locations.bin_user
编辑: 今天我找到了一种stdlib方式来获取sysconfig
模块的此信息。适用于2.7和3.3 +。
>>> from sysconfig import get_paths
>>> get_paths()['scripts']
'/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/bin'