首页 > 解决方案 > 如何确定 pip3 为非用户安装安装二进制文件/脚本的位置?

问题描述

我可以使用以下方法确定 pip 在何处安装软件包二进制文件/脚本pip3 install --user mypackage

$(python3 -m site --user-base)/bin

是否有一种机制可以确定非用户二进制文件/脚本的安装位置(例如pip3 install mypackage)安装位置?

请注意,我只对二进制文件/脚本的安装位置感兴趣,而不是库代码的安装位置。

更新:

目的是确保 PATH 环境变量包含安装二进制文件/脚本的文件夹,因为这在过去给我造成了一些问题。

更新 2:

$ python3 -c "import sysconfig; print(sysconfig.get_path('scripts'))"
/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/bin

$ python3 -c "from pip._internal.locations import bin_py; print(bin_py)"
/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/bin

但是, pip3 安装到/usr/local/bin

注意:

$ which pip3
/usr/local/bin/pip3
$ which python3
/usr/local/bin/python3

标签: python-3.xpip

解决方案


这已经在这里得到了回答(但我不能“关闭为重复”,因为有赏金):

https://stackoverflow.com/a/62167797


我相信规范的方式(前进)是使用sysconfig.get_path(...). 根据确切的需要,可以组合schemename。因此,也许对于您的确切用例:

import sysconfig

scripts_path = sysconfig.get_path('scripts')
print(scripts_path)

作为外壳的单线

python -c "import sysconfig; print(sysconfig.get_path('scripts'))"

其他可能有助于识别正确目录的事情:

python -m site
python -m sysconfig

参考资料


推荐阅读