** 官方说明 **
- pip(Python Package Index)是一个以 Python 语言写成的软件包管理系統,使用 pip 可以非常方便的安装和管理 python 软件包
PIP
** 查看信息 **
- 查看版本 : pip --version
- 查看已有 : pip list、pip freeze
- 查看帮助 : pip help
- 查看库信息 : pip show -f package_name
- 查看需要升级的库 : pip list -o、pip list --outdated
- 验证已安装的库是否有兼容依赖问题 : pip check package-name
** 版本升级 **
- 修复版本 : python -m ensurepip 重新下载pip
- 升级版本 :
- pip install -U pip
- pip install --upgrade pip
- python -m pip install -i https://pypi.douban.com/simple --upgrade pip
** 安装库包 **
- 最新版本 : pip install package_name
- 指定版本 : pip install package_name==1.1.2
- 最小版本 : pip install ‘package_name>=1.1.2’
- 指定源头 : pip install -i https://pypi.douban.com/simple/ package
- 生成清单 : pip freeze > C:\MyFiles\requirements_20220830.txt
- 批量安装 : pip install -r C:\MyFiles\requirements_20220830.txt
- 批量安装 : pip install -i https://pypi.douban.com/simple -r D:\Mytest\requirements_20220313.txt 更换下载源
- 离线下载 : https://www.lfd.uci.edu/~gohlke/pythonlibs/
- 离线安装 : pip install matplotlib?3.4.1?cp39?cp39?win_amd64.whl (先进入whl目录,再进入cmd)
- 下载并保存whl格式 : pip download package_name -d “要保存的文件路径”
- 下载但不安装 : pip install <包名> -d <目录>、pip install -d <目录> -r requirements.txt
** 更新库包 **
- 更新库包: pip install --upgrade package
- 更新库包: pip install -U package # --upgrade 可简写为 -U
** 卸载库包 **
- 卸载库包 : pip uninstall package_name
- 批量卸载 : pip uninstall -r requirements.txt
- 卸载pip : python -m pip uninstall pip
** pip生成依赖清单 **
- 生成全局依赖:pip freeze > C:\MyFiles\requirements_20220830.txt
生成框架依赖:
1. 添加项目虚拟环境:Project Interpreter,点击"+"号,新增虚拟依赖virtualenv enviroment
-
- 通过虚拟路径生成:进入venv/Scripts/,执行python.exe -m pip freeze > requirements.txt
-
- 安装依赖方式一:pip3 install -r C:\MyFiles\requirements_20220830.txt 有警告信息
- 安装依赖方式二:python.exe -m pip3 install -r C:\MyFiles\requirements_20220830.txt 无警告信息
** 国内镜像 **
- 清华: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
** 更换下载源 **
- 长期有效,更换下载源 : pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 前置,临时更换下载源: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ddddocr==1.0.3
- 后置,临时更换下载源 : pip install pyside2 -i https://pypi.tuna.tsinghua.edu.cn/simple
- 批量安装,更换下载源 : pip install -i https://pypi.douban.com/simple -r D:\Mytest\requirements_20220313.txt`
pipupgrade(推荐第三方库)
- 定义:批量管理第三方库,可以批量更新本地包、系统包
** 安装库包 **
- 安装库包:pip install pipupgrade
** 使用库包 **
- 批量更新:pipupgrade -V -l -y
- 详细输出:pipupgrade -V、pipupgrade --verbos
- 更新库包:pipupgrade -S、pipupgrade --self
- 打印过期的库包:pipupgrade -c、pipupgrade --check
- 升级所有的库包:pipupgrade -l、–latest
- 列出所有的库包:pipupgrade -a、–all
- 更新所有的库包:pipupgrade -i、–interactive
- 批量更新的库包:pipupgrade --requirement requirement.txt
- 批量确认所有的确认框:pipupgrade -y、–yes
pip-review(推荐第三方库)
** 安装库包 **
- 安装库包:pip install pip-review
** 使用库包 **
检查是否有需要更新的包
-
pip-review
scikit-learn0.23.2 is available (you have 0.23.1)
scipy1.5.4 is available (you have 1.4.1)
seaborn==0.11.0 is available (you have 0.10.1)
… 自动更新所有的包:pip-review -a
手动更新每一个包:
-
pip-review --interactive
matplotlib3.3.3 is available (you have 3.1.3)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit N
numpy1.19.4 is available (you have 1.18.1)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit Y
pandas==1.1.5 is available (you have 1.0.3)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit N
…
pip 进阶操作
pip list 结合linux命令
- pip list 命令可以查询已安装的库,结合 Linux 的一些命令(cut、sed、awk、grep……),可以直接在命令行中实现批量升级
python3 -m pip list | awk 'NR>=3{print}' | awk '{print $1}' | xargs python3 -m pip install -U
- 先 list 查询
- 接着第一个 awk 取出行号大于等于 3 的内容
- 第二个 awk 取出第一列的内容
- 然后作为参数传给最后的升级命令
代码中调用 pip 的方法
from subprocess import call
from pip._internal.utils.misc import get_installed_distributions
for dist in get_installed_distributions():
call("pip install --upgrade " + dist.project_name, shell=True)
使用 pkg_resources 库
# 需要安装 setuptools
import pkg_resources
from subprocess import call
packages = [dist.project_name for dist in pkg_resources.working_set]
call("pip install --upgrade " + ' '.join(packages), shell=True)
本文含有隐藏内容,请 开通VIP 后查看