pip常用命令及其含义
本文介绍pip常用命令及pip install的部分选项含义
参考https://www.runoob.com/w3cnote/python-pip-install-usage.html
pip最常用命令
显示版本和路径
pip --version
获取帮助
pip --help
升级 pip
pip install -U pip
如果这个升级命令出现问题 ,可以使用以下命令:
sudo easy_install --upgrade pip
安装包
pip install SomePackage # 最新版本
pip install SomePackage==1.0.4 # 指定版本
pip install 'SomePackage>=1.0.4' # 最小版本
升级包
pip install --upgrade SomePackage
卸载包
pip uninstall SomePackage
搜索包
pip search SomePackage
显示安装包信息
pip show
查看指定包的详细信息
pip show -f SomePackage
列出已安装的包
pip list
查看可升级的包
pip list -o
镜像源设置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
查看已经安装的包和信息
pip freeze
导出命令
pip freeze > 文件名
pip install
-i
选项- 含义:
-i
用于指定pip
安装包时使用的镜像源(index - url)。 - 示例及作用:
- 例如
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some_package
。在这个命令中,https://pypi.tuna.tsinghua.edu.cn/simple
是清华镜像源的地址。默认情况下,pip
会从官方的Python Package Index(https://pypi.org/)获取包,如果网络原因导致访问官方源速度慢或者无法访问,使用-i
指定国内的镜像源(如清华镜像源)可以加快安装速度。
- 例如
- 含义:
-f
选项(--find - links
)- 含义:
-f
用于指定额外的包搜索路径。这个路径可以是本地目录或者是一个包含包链接的HTML页面。 - 示例及作用:
- 假设你有一个本地目录
/local/packages
,里面有一些自定义的或者无法从常规镜像源获取的whl
文件或者其他格式的包文件。你可以使用pip install -f /local/packages some_package
命令来让pip
在指定的本地目录中查找安装包。这在你需要安装自己开发的、尚未发布到公共仓库的包或者从其他特殊渠道获取的包时非常有用。
- 假设你有一个本地目录
- 含义:
-c
选项(--constraints
)- 含义:
-c
用于指定安装包时的约束条件。约束条件通常是一些版本范围的限制,这些限制会覆盖包的依赖关系中可能存在的其他版本要求。 - 示例及作用:
- 比如你有一个项目,需要安装
packageA
,但它依赖packageB
,正常情况下packageB
可能会安装最新版本,但你发现最新版本和你的项目有兼容性问题。你可以创建一个约束文件(比如constraints.txt
),里面写上packageB==1.0.0
(指定packageB
的版本为1.0.0)。然后使用pip install -c constraints.txt packageA
命令,这样在安装packageA
时,packageB
就会按照约束文件中的版本要求进行安装。
- 比如你有一个项目,需要安装
- 含义:
-r
选项(--requirement
)- 含义:
-r
用于从一个文件中读取依赖项列表并进行安装。这个文件通常是一个纯文本文件,每一行包含一个包名称或者包名称及版本号等信息。 - 示例及作用:
- 假设你有一个项目,它的依赖项很多,你可以把所有的依赖项列在一个文件(比如
requirements.txt
)中,文件内容可能像这样:numpy==1.21.0 pandas==1.3.0 matplotlib==3.4.0
- 然后使用
pip install -r requirements.txt
命令,pip
就会按照文件中的要求依次安装numpy
、pandas
和matplotlib
这几个包及其指定的版本。这种方式在项目部署或者在不同环境中复现相同的依赖项安装时非常方便。
- 假设你有一个项目,它的依赖项很多,你可以把所有的依赖项列在一个文件(比如
- 含义:
- 使用
--no - cache - dir
选项- 原理:
pip
默认会使用缓存来加快包的安装过程。缓存中存储了之前下载过的包文件及其相关的元数据。当使用--no - cache - dir
选项时,pip
会忽略缓存目录,直接从指定的镜像源(如清华源)下载包文件进行安装。 - 示例命令:
- 假设要安装
numpy
包,使用清华源并且不使用缓存,命令如下: pip install --no - cache - dir -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
- 假设要安装
- 原理:
--upgrade
升级到最新版本(可能会覆盖)- 原理:如果只是想确保安装的是最新版本的包,即使本地已经有该包的旧版本,使用
--upgrade
选项可以强制pip
更新到最新版本。这可能会导致覆盖现有安装的旧版本。 - 示例命令:
- 同样以
numpy
为例,使用清华源升级安装的命令为:pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
- 同样以
- 原理:如果只是想确保安装的是最新版本的包,即使本地已经有该包的旧版本,使用
-q
静默- 原理:很多命令的-q都是quiet的意思,就是安装的过程中不在终端输出任何信息,建议不要使用
-e
选项-e
是pip
命令的一个参数,全称为--editable
。它用于以“可编辑”模式安装一个 Python 包。- 具体来说,当你使用
-e
选项安装一个本地的 Python 项目(通常是一个包含setup.py
文件或者pyproject.toml
文件来描述项目配置的目录结构)时,它不会像常规安装那样把项目代码复制到 Python 的site-packages
目录下,而是会在site-packages
目录下创建一个指向项目源文件所在目录的链接(在不同操作系统上实现方式稍有不同,比如在类 Unix 系统上是符号链接等)。 - 这样做的好处是,在开发过程中,你对项目源文件所做的任何修改都会立即在使用该项目的 Python 环境中生效,不需要重新安装这个包,方便开发者在开发和调试阶段快速验证代码更改带来的影响,常用于开发一些自定义的 Python 库或者本地项目的依赖包等情况。
.[all,dev,notebooks]
部分
这是一种指定“额外依赖(extras)”的语法形式。在 Python 项目的配置文件(比如 setup.py
或者 pyproject.toml
)中,除了定义项目的核心依赖(即正常运行项目所必须安装的那些包)之外,还可以定义一些额外的依赖分组,称为“extras”。
这里 .
表示当前目录,意味着是安装当前目录下对应的 Python 项目。而 [all,dev,notebooks]
就是指定要安装的额外依赖分组名称。项目开发者可以根据不同的使用场景或者功能需求,将相关的一些依赖包划分到不同的 extras
分组里。例如:
all
这个分组可能包含了项目所有可选的依赖,涵盖了各种功能扩展等所需要的额外包,安装这个分组就能把所有额外功能相关的依赖都装上。dev
分组通常是在项目开发阶段需要用到的一些工具包,比如代码格式化工具、测试框架、代码质量检查工具等,方便开发者进行代码开发、测试等操作。notebooks
分组可能是针对项目中与 Jupyter Notebook 相关使用场景的一些依赖,比如特定的数据可视化库、用于在 Notebook 中进行数据处理的一些辅助工具包等。
git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks] # Select the relevant extras
所以整体这条命令就是以可编辑模式安装当前目录下的 Python 项目,并同时安装该项目配置文件中定义的名为 all
、dev
和 notebooks
的这些额外依赖分组里包含的所有相关依赖包,这样能根据具体需求灵活配置项目的安装内容,适配不同的使用场景(开发、使用全部功能、在 Notebook 中使用等)。