美文网首页
pip 命令学习随笔

pip 命令学习随笔

作者: 还有没人用的网名吗 | 来源:发表于2023-01-10 15:40 被阅读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/

    相关文章

      网友评论

          本文标题:pip 命令学习随笔

          本文链接:https://www.haomeiwen.com/subject/utqvcdtx.html