pip 在哪里安装它的包?

Where does pip install its packages?

我激活了安装了 pip 的 virtualenv。我做到了

pip3 install Django==1.8

Django 下载成功。现在,我想打开 Django 文件夹。文件夹位于何处?

通常它会在“下载”中,但我不确定如果我在 virtualenv 中使用 pip 安装它会在哪里。

pip 当与 virtualenv 一起使用时,通常会在路径 <virtualenv_name>/lib/<python_ver>/site-packages.

中安装包

例如,我用 Python 2.7 创建了一个名为 venv_test 的测试 virtualenv,django 文件夹位于 venv_test/lib/python2.7/site-packages/django.

pip show <package name> 将为 Windows 和 macOS 提供位置,我猜是任何系统。 :)

例如:

> pip show cvxopt
Name: cvxopt
Version: 1.2.0
...
Location: /usr/local/lib/python2.7/site-packages

默认情况下,在 Linux,Pip 将软件包安装到 /usr/local/lib/python2.7/dist-packages.

在安装过程中使用 virtualenv 或 --user 将更改此默认位置。如果您使用 pip show,请确保您使用的是正确的用户,否则 pip 可能看不到您引用的包。

在Python解释器或脚本中,你可以

import site
site.getsitepackages() # List of global package locations

site.getusersitepackages() # String for user-specific package location

第三方包(不在核心 Python 发行版中的包)安装到的位置。

在我 Homebrew-installed Python macOS 上,前者输出

['/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages'],

规范化为 pip show 输出的相同路径,如前一个答案所述:

$ readlink -f /usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
/usr/local/lib/python3.7/site-packages

参考:https://docs.python.org/3/library/site.html#site.getsitepackages

pip list -v 可用于列出软件包的安装位置,在 https://pip.pypa.io/en/stable/news/#b1-2018-03-31

中引入

Show install locations when list command ran with “-v” option. (#979)

>pip list -v
Package                  Version   Location                                                             Installer
------------------------ --------- -------------------------------------------------------------------- ---------
alabaster                0.7.12    c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
apipkg                   1.5       c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
argcomplete              1.10.3    c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
astroid                  2.3.3     c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
...

此功能在 pip 10.0.0b1 中引入。在 Ubuntu 18.04 (Bionic Beaver) 上,pippip3 安装了 sudo apt install python-pipsudo apt install python3-pip 是 9.0.1,没有此功能。

检查 https://github.com/pypa/pip/issues/5599 以找到合适的升级方式 pippip3

最简单的方法可能是

pip3 -V

这将向您显示 pip 的安装位置以及您的软件包所在的位置。

可以导入包然后查阅它的帮助

import statsmodels
help(sm)

在帮助的最底部有一个部分 FILE 指示此包的安装位置。

此解决方案至少使用 matplotlib (3.1.2) 和 statsmodels (0.11.1) (python 3.8.2) 进行了测试。

最安全的方法是通过您正在执行的特定 python 调用 pip。如果您直接 运行 pip show pip,它调用的 pip 可能与 python 调用的不同。示例:

$ python -m pip show pip
$ python3 -m pip show pip
$ /usr/bin/python -m pip show pip
$ /usr/local/bin/python3 -m pip show pip

下面是一个示例,展示了它们之间的区别:

$ pip show pip

Location: /usr/local/lib/python3.9/site-packages

$ python -m pip show pip

Location: /Library/Python/2.7/site-packages