pip 是最为广泛使用的 Python 包管理器,可以帮助我们获得最新的 Python 包并进行管理。

1 pip常用命令

pip常用命令如下:

命令

说明

pip install [package-name]

安装名为[package-name]的包

pip install [package-name]==X.X

安装名为[package-name]的包并指定版本X.X

pip install [package-name] --upgrade

更新名为[package-name]的包

pip uninstall [package-name]

删除名为[package-name]的包

pip list

列出当前环境下已安装的所有包

pip list --outdated 查看过时的库

pip show [package-name]

列出包的信息

pip freeze [package-name]

按requirements格式输出已安装的package列表

pip check [package-name]

验证安装的package的依赖是否安装

pip search [package-name]

在PyPI中搜索包

pip config [debug, edit, get, list, set, unset]

管理本地和全局的配置

pip cache purge

清除pip缓存,当遇到DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE,

可使用 pip cache purge

pip install --no-cache-dir xxx解决

2 pip更新

在使用pip时,pip版本过低时可能有如下报错:

You are using pip version 10.0.1, however version 20.2.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

修复方法:

按照提示修复即可

python -m pip install --upgrade pip

注意: python -m pip install 与 pip install 是同一种用法,差别是:有时如果没有把pip路径添加到环境变量里,直接使用pip install xxx会出错,这时我们可以把命令补全python -m pip install xxx。

3 pip换国内源

如果安装包速度慢,可以切到国内源。

国内源列表:

清华:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

豆瓣:http://pypi.douban.com/simple/

换源的使用方法:

  • 临时换源:

例如安装opencv,如下即可:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

有时遇见以下特殊情况:

ERROR:Could not find a version that satisfies the requirement opencv-python (from versions:None)
# 可采用如下方法:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
# 如遇到权限问题,按照提示加入–-user:
pip install  --user -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
  • 永久换源

也可以通过pip config工具设置镜像源:

# 设置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
pip config set global.timeout 120
# 查看
pip config get global.index-url 或
pip config list

# 删除配置
pip config unset global.index-url
或者:pip config --editor=vi edit 手动删掉先关配置即可

4 遇到No Module name xxx

一般报这种错,差什么就用pip装什么模块即可,但是非得有些模块“搞特殊”,名字与模块不对应,遇到的列举如下,后面遇到方便查看(待补充)

报错

修复

No module named 'cv2'

pip install opencv-python

pip install opencv-python-headless

No module named 'PIL'

pip install pillow

sklearn

scikit-learn

No module named 'serial.tools'

pip install pyserial

No module named 'yaml'

pip install pyyaml

手动安装:

有些模块pip安装不上,可以手动下载到本地,然后copy到site-packages目录下对应的位置。

查看pip安装包的位置:

pip show [package-name]

5 pip的requirements.txt 的用法

requirements.txt主要是用来记录环境里面的依赖包和精确的版本号。

# 在某环境下记录
pip freeze > requirements.txt
# 迁移到另外一个环境中
pip install -r requirements.txt

这样做法的缺点是:会将环境中的依赖包全都加入不管是不是当前项目依赖的。

解决办法:

  1. 使用pipreqs工具
# 安装
pip install pipreqs
# 扫描项目生成依赖清单,在项目的根目录下 使用 pipreqs ./
pipreqs ./ --encoding=utf8
# 迁移
pip install -r requirements.txt
  1. 使用虚拟环境进行隔离 virtualenv 或 pipenv

参考:

  1. python 中的requirements.txt 文件的使用详情
  2. python pip安装的包放在哪里(site-packages目录的位置)