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

pip3 install Django==1.8

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

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


当前回答

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 (Bionic Beaver)上,pip或pip3安装了sudo apt install python-pip或sudo apt install python3-pip是9.0.1,没有这个功能。

请访问https://github.com/pypa/pip/issues/5599以获得升级pip或pip3的合适方法。

其他回答

当与virtualenv一起使用时,PIP通常会将包安装在<virtualenv_name>/lib/<python_ver>/site-packages路径下。

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

pip show <包名>将提供Windows和macOS的位置,我猜任何系统。:)

例如:

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

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 (Bionic Beaver)上,pip或pip3安装了sudo apt install python-pip或sudo apt install python3-pip是9.0.1,没有这个功能。

请访问https://github.com/pypa/pip/issues/5599以获得升级pip或pip3的合适方法。

在Python解释器或脚本中,您可以这样做

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

and

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

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

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

[' / usr /地方/地窖/ python / 3.7.4 /框架/ Python.framework /版本/ 3.7 / lib / python3.7 /网站”),

这规范化到由PIP输出的相同路径显示,如之前的回答中所述:

$ 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

最安全的方法是通过正在执行的特定python调用pip。如果直接运行pip show pip,它可能调用的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