pip在哪里安装其软件包?


323

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

pip3 install Django==1.8

和Django成功下载。现在,我想打开Django文件夹。文件夹在哪里?通常它会在“下载”中,但是我不确定如果在virtualenv中使用pip安装它会在哪里。


1
是否可以通过CLI args,环境变量或配置文件覆盖安装软件包的目录?
约翰·卡雷尔

Answers:


108

virtualenv一起使用时,pip通常会在路径中安装软件包<virtualenv_name>/lib/<python_ver>/site-packages

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


1
有时您可能不知道virtualenv名称/路径,例如与Jupyterhub / binderhub产生的资源一起使用。当我什么也没做的时候,我发现这里的第一种方法可以工作pip show。简而言之,它包括输入适当的python控制台并键入help("module_name"),其中module_name替换为您感兴趣的实际模块名称。您可以help("modules")在python控制台中查看已安装的模块。
韦恩

1
您以哪种方式构建了virtualenv?我正在使用conda创建我的虚拟环境,而pip3并未在您提到的文件夹中安装软件包
cloudcomputes

当时(差不多4年前),我正在使用virtualenv和Python2.x。现在,我正在使用venv和Python3.5.x。不过,我仍然找到相同的常规文件夹结构。对于Anaconda,这是精心策划的独特发行版,因此它可能至少部分地以不同的方式构造事物。
khampson

582

根据大众需求,通过发布的答案提供了一个选项:

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

例如:

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

15
在Mac上,这向我显示了包含awscli源代码的目录,但没有二进制文件。:/
Cory Klein's

8
正确,但要完全符合提出的问题,应该是pip3 show <package name>
Jorge Torres

1
我在Windows上使用python 3.6,“ pip”是指python 3的pip。我不需要指定“ pip3”。
FistOfFury

7
@CoryKlein而不是site-packages/,我在~/Library/Python/3.7/bin/
马特·弗莱彻

2
效果很不错的Ubuntu 18.04
穆罕默德Baashar

47

pip list -v可用于列出软件包的安装位置,该位置在https://pip.pypa.io/zh/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
...

更新pip10.0.0b1中引入了此功能。在Ubuntu 18.04上,pippip3安装有sudo apt install python-pip或是sudo apt install python3-pip9.0.1的版本,但没有此功能。检查https://github.com/pypa/pip/issues/5599,了解升级pip或升级的合适方法pip3


4
不幸的是,这在Ubuntu 18.04LTS上不起作用
Sumanth Lazarus

3
对我来说,它没有显示安装位置(在Linux Mint 19.3上)
Nicolai Weitkemper

pip安装在使用sudo apt install python-pip或者sudo apt install python3-pip是9.0.1。检查github.com/pypa/pip/issues/5599以获取合适的升级pip或升级方法pip3
佳斯利

11

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

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


7

在Python解释器或脚本中,您可以执行

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

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

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

在MacOS上我的Brew安装的Python上,前者输出

['/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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.