使用 pip 管理 Python 包的常见用法如下:
管理包(安装、升级、卸载和查看等)
安装最新版本:
1
pip install package_name
安装指定版本:
1
pip install package_name==1.2.3
从本地文件安装:
1
pip install /path/to/package.whl
从 GitHub 安装:
1
pip install git+https://github.com/user/repo.git
升级到最新版本:
1
pip install --upgrade package_name
卸载包:
1
pip uninstall package_name
查看某个包的详细信息:
1
pip show package_name
列出所有已安装的包:
1
pip list
搜索包
搜索包:
1
pip search package_name
- 这个命令已经弃用,现在需要访问官网才行
https://pypi.org/
- 这个命令已经弃用,现在需要访问官网才行
搜索包版本:
1
pip index versions package_name
检查包更新
- 检查哪些包需要更新:
1
pip list --outdated
配置镜像源
临时使用镜像源:
1
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
永久配置镜像源:
1
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
其他常用命令
查看帮助:
1
pip --help
查看版本:
1
pip --version
用pip批量导出或安装环境配置
可以使用
pip freeze命令导出当前 Python 环境的配置下面的
pip freeze命令将在当前目录下创建一个名为requirements.txt的文件,并写入当前环境中已安装的所有包及其版本信息 :1
pip freeze > requirements.txt
下面的命令可以在任何地方根据
requirements.txt中列出的包及其版本信息重新安装所有必需的包,从而重建相同的环境(其中-r参数用于指定依赖性的文件名):1
pip install -r requirements.txt
从源码安装包
- 以通过源码安装
transformers为例子 - clone仓库 :
git clone https://github.com/huggingface/transformers.git - 进入目录 :
cd transformers - 安装依赖(准备项) :确保你的Python环境中已经安装了
setuptools等必要的依赖。如果没有安装,可以先使用pip install setuptools进行安装 - 安装(推荐方式) :
pip install .- 注意:这种方式会将
transformers安装到你的Python环境中,但如果后续你对源码进行了修改,需要重新执行安装命令才能使修改生效 - 其他安装方式(可编辑安装) :
pip install -e .命令,该命令会将克隆的仓库链接到你的Python库路径,这样Python不仅会在正常的库路径中搜索库,也会在你克隆到的文件夹中进行查找,方便修改后生效
- 注意:这种方式会将
- 安装完成后,对于还未发行的版本,版本名称可能是带有后缀
.dev等的(依赖可能识别不了)
附录:安装带 -e 的含义
- 是否使用
-e在安装方式和后续开发行为上有本质区别 - 具体来说
pip install .和pip install -e .都是用来安装当前目录下的 Python 包的命令,但安装本质不同
pip install . (标准安装)
- 将当前目录(
.代表当前目录)下的 Python 包进行复制安装(静态) - 安装过程 :
- 1)
pip会查找当前目录中的setup.py或pyproject.toml文件 - 2)根据配置,将包的源代码复制到 Python 环境的
site-packages目录下 - 3)同时安装包的依赖项
- 1)
- 安装后,你在项目源码中做的任何修改,不会自动反映到已安装的包中,即不可编辑
- 如果你修改了源代码,必须重新运行
pip install .来更新已安装的包,才能让改动生效
- 如果你修改了源代码,必须重新运行
- 当你准备发布一个稳定版本时,通常使用这种方式
pip install -e . (可编辑安装 / 开发安装)
-e是--editable的缩写,进行的是可编辑安装或开发安装(动态链接)- 安装过程 :
- 1)
pip同样查找setup.py或pyproject.toml - 2)它不会复制源代码,而是在
site-packages目录下创建一个指向你当前项目目录的符号链接(symlink) 或特殊的.pth文件 - 3)这样,Python 解释器在导入这个包时,会直接从你的项目源码目录加载模块
- 1)
- 你在项目源码中做的任何修改,立即生效 ,不需要重新安装,即是可编辑的
- 非常适合在开发过程中使用,可以快速测试代码变更
- 包的依赖项仍然会被安装到环境中
- 包的“安装位置”就是开发目录,删除开发目录会导致包“消失”
附录:安装包的用法
常规用法
使用普通命令足以
1
pip install package==1.1.0
若已经安装有包(不管是升级还是降级均可),想要强制重新安装,使用:
1
pip install package==1.1.0 --force-reinstall
已经有包的情况下,也可以使用:
1
2pip3 uninstall package
pip3 install package==1.1.0
推荐用法
升级包时使用
--upgrade参数,确保升级操作能够执行1
pip install --upgrade package==1.1.0
- 若没有
--upgrade参数可能会默认不安装,因为认为当前包已经符合版本(高于目标版本)
- 若没有
降级包时加一个强制参数
1
pip install package==1.1.0 --force-reinstall