繁体   English   中英

如何稳健地检索python环境的bin路径?

[英]How to robustly retrieve the bin path of a python environment?

我已经弄清楚如何检索 python 环境的包含和站点包路径。 例如,以下是多种可能性之一

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 ),则这不起作用

我可以使用什么来代替跨平台工作?

获取此位置的 stdlib 方法是通过sysconfig模块。 适用于 2.7 和 3.3+。 无论您是否使用虚拟环境,都可以使用。

>>> from sysconfig import get_path
>>> get_path('scripts')
'/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/bin'

几乎所有需要安装脚本的包都会把它们放在那里。 但是,请注意,对于命令式安装程序, setup.py代码实际上是被执行的,这意味着它可以在文件系统上的任何地方放置脚本,只要获得许可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM