pip 命令学习随笔

2023-01-10  本文已影响0人  还有没人用的网名吗

简介

pip是Python的包安装程序。您可以使用它从Python包索引和其他索引安装包。

pip 基础命令

1. 版本号查询

$ python -m pip --version

2. 包安装

$ python -m pip install sampleproject  #普通安装
$ python -m pip install sampleproject==1.0.4  #普通安装-版本号
$ python -m pip install sampleproject>=1.0.4  #普通安装-版本号
或者
$ python -m pip install git+https://github.com/pypa/sampleproject.git@main  #Github安装
或者
$ python -m pip install sampleproject-1.0-py3-none-any.whl  #本地包安装
或者
$ python -m pip freeze > requirements.txt  #生成requirements.txt文件
$ python -m pip install -r requirements.txt  #requirements.txt文件安装
或者
$ python -m pip install sampleproject --proxy https://mirrors.aliyun.com/pypi/simple/  #镜像源安装

3.包更新

$ python -m pip install --upgrade sampleproject

4.包删除

$ python -m pip uninstall sampleproject

pip 安装

如果Python环境里没有pip包,官方提供了两种安装方式。

1. ensurepip 方式

$ python -m ensurepip --upgrade

2. get-pip 方式

获取 get-pip 脚本,下载地址: https://bootstrap.pypa.io/get-pip.py

打开命令行工具进入包含 get-pip.py 文件的文件夹,执行下面命令:

$ python get-pip.py

pip 独立使用

pip除了安装在Python环境中之外,还可以作为独立的应用程序使用。

zip包下载地址:https://bootstrap.pypa.io/pip/pip.pyz

$ python pip.pyz --help
或者
$ python -m pip.pyz --help

pip 更新

$ python -m pip install --upgrade pip

其他

1. Requirements Files 依赖文件

1.1 文件生成
$ python -m pip freeze > requirements.txt
1.2 依赖包版本号处理

如果 pkg1pkg2 同时引用了 pkg3, 但引用的版本不同,则 requirements.txt 应写成:

pkg1
pkg2
pkg3>=1.0,<=2.0
1.3 依赖包版本降级处理

假设需求文件中的ProjectA需要ProjectB,但最新版本(v1.3)有错误,您可以强制pip接受早期版本,则 requirements.txt 应写成:

ProjectA
ProjectB<1.3
1.4 开发包依赖处理

如果你想依赖开发中的包,则 requirements.txt 应写成:

git+https://myvcs.com/some_dependency@sometag#egg=SomeDependency

2. Constraints Files 约束文件

约束文件仅控制安装了哪个版本的依赖包,并不参与包安装。

$ python -m pip install -c constraints.txt

3. Wheels 文件

3.1 创建 .whl 文件
$ python -m pip install wheel
$ python -m pip wheel --wheel-dir=/local/wheels -r requirements.txt
3.2 安装 .whl 文件
$ python -m pip install --no-index --find-links=/local/wheels -r requirements.txt

4. 依赖包列表

4.1 已装的依赖包
$ python -m pip list
4.2 过时的依赖包
$ python -m pip list --outdated
4.3 依赖包详细信息
$ python -m pip show sphinx

5. 依赖包搜索

$ python -m pip search "query"

6. 本地安装依赖包

$ python -m pip download --destination-directory DIR -r requirements.txt  #依赖包下载

$ python -m pip wheel --wheel-dir DIR -r requirements.txt  #依赖包安装方式一 (本地无缓存会联网获取)
或者
$ python -m pip install --no-index --find-links=DIR -r requirements.txt  #依赖包安装方式二 (仅使用本地缓存)

7. 依赖包升级策略

--upgrade-strategy 选项控制依赖包升级策略,支持两种升级方式:

  1. eager:全量升级,无论新版本符不符合父包都升级;
  2. only-if-needed:按需升级,仅当依赖包版本不满足当前父包时升级;
$ pip install --upgrade SomePackage --upgrade-strategy=eager

例:SomePackage 依赖于 SomeDependency,并且都已安装但不是最新版本,则

$ pip install SomePackage  #不会升级现有的 SomePackage 和 SomeDependency
$ pip install --upgrade SomePackage  #会升级 SomePackage 但不会升级 SomeDependency (除非版本不匹配)
$ pip install --upgrade SomePackage --upgrade-strategy=eager #SomePackage 和 SomeDependency 都会升级

8. 指定用户安装

$ python -m pip install --user SomePackage
注意事项
  1. 当全局包与用户包存在冲突时,此安装将被忽略。
  2. 当全局包满足安装要求时,此安装将被忽略。
  3. 用户包不会安装在 --no-site-packages 选项的虚拟环境中。
  4. 当用户包与具有 --system-site-packages 选项的虚拟环境有版本冲突时,则取消安装。

9. pip 在程序中的使用

import sys
import subprocess

subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'my_package'])

类似推荐:packaging、setuptools、distlib

官方网站(英文):https://pip.pypa.io/en/stable/getting-started/

上一篇下一篇

猜你喜欢

热点阅读