python之pip安装
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
这样做法的缺点是:会将环境中的依赖包全都加入不管是不是当前项目依赖的。
解决办法:
-
使用pipreqs工具
# 安装 pip install pipreqs # 扫描项目生成依赖清单,在项目的根目录下 使用 pipreqs ./ pipreqs ./ --encoding=utf8 # 迁移 pip install -r requirements.txt
-
使用虚拟环境进行隔离 virtualenv 或 pipenv
参考: