pip在哪里安装它的包?

我激活了一个已安装pip的virtualenv。我所做的

pip3 install Django==1.8

Django下载成功。现在,我要打开Django文件夹。文件夹位于哪里?

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

862329 次浏览

皮普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发行版中的)的位置。

在macOS上我的# eyz0安装的Python上,前者输出

# EYZ0,

这规范化到相同的路径输出由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

参考:# EYZ0

pip list -v可以用来列出包的安装位置,在https://pip.pypa.io/en/stable/news/#b1-2018-03-31中介绍过

使用“-v”选项显示列表命令运行时的安装位置。(# 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(仿生海狸)上,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,它可能会调用一个不同于python所调用的pip。例子:

$ 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