pip 简介
pip : The Package Installer for Python
Python包管理工具,提供了对 Python 包的查找、下载、安装、卸载、更新等功能。
pip 安装, 升级
conda 或者 anaconda 包中安装 Python 都包含 pip 环境。 单独安装如下:
python setup.py install
升级:
python -m pip install --upgrade pip pip install --upgrade pip #之前用过不是很保险,先会卸载 pip,然后卸载就无法使用 pip 进行更新了。新版本 pip 好像解决了
pip 换源
pip国内的一些镜像
-
阿里云 Simple Index
-
中国科技大学 Simple Index
-
豆瓣(douban) Simple Index
-
清华大学 Simple Index
-
中国科学技术大学 Simple Index
永久修改: linux: 修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:
[global] timeout = 6000 index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn
windows:
直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,在pip 目录下新建文件pip.ini,内容如下
或者按照网友的建议:win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件, 内容如下
[global] timeout = 6000 index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn
pip 常用指令
(1) pip 安装包,下载包
#pip 安装 pip install <package_name> #pip 安装特定 package 版本 pip install package_name==package_version #安装 pip 多个文件 pip install pack1 pack2 ... #使用 txt 进行安装 pip install requirements.txt requirements.txt content info: Pillow==8.2.0 torch opencv-python matplotlib _______________________________ #使用别的源进行安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package matplotlib #使用 whl 进行安装 pip install wheel_path xxx.whl #已经安装了包, 升级|降级|安装特定的版本的包 pip install --upgrade Pillow==8.2.0 #安装可以编辑的包, setuptools in develop mode #需要项目的setup.py 文件夹,然后使用命令, 处于setup.py 文件的位置 pip install -e/--editable . pip install -e/--editable vega #不缓存 安装 pip --no-cache-dir install #有一些权限问题安装需要使用, 或者为了不破坏 conda环境,给用户安装的时候使用 pip install --user xxxx
安装还有在线离线模型:
pip download与pip install简介_happy_wealthy的博客-CSDN博客
#离线下载, -d 表示下载软件到哪个文件夹中 路径 pip download -d packages -r requirements.txt #离线安装 pip install --no-index --find-links=packages -r requirements.txt
可编辑的方式安装具体细节指导:
https://www.jianshu.com/p/9a5e7c935273
pip install --user
问题, 特定用户安装:
从Python2.6开始,所有Python发行版都支持特定于用户的替代安装位置。
python文档中解释了每个操作系统的默认位置,
UNIX和Mac OS X非框架构建的默认位置
~/.local
,Mac框架构建的默认位置
~/Library/Python/X.Y
,Windows的默认位置
%APPDATA%\Python
。通过pip install指定--user可以打开这种安装模式。
pip install --user遵循四个规则:
-
当全局安装的包位于python路径上,并且与安装要求冲突时,它们将被忽略,不会被卸载。
-
当全局安装的包在python路径上,并且它们满足了安装需求时,pip不做任何操作,并报告需求已得到满足(类似于全局包在
--system-site-packages
,virtualenv中安装包时满足需求的方式)。 -
在
--no-site-packages
virtualenv中,由于用户站点不在python路径上,pip不会执行--user
安装。安装是没有意义的。 -
在
--system-site-packages
virtualenv中,pip不会安装与virtualenv site-packages中的包冲突的包。--user
安装将没有意义。
其他方式可查看 pip install --help
(2) pip 卸载包
#卸载一个包 pip uninstall numpy #卸载多个包 pip uninstall numpy scipy matplotlib #卸载指定文件中包含的包 pip uninstall -r your_path/requirements.txt
(3) pip list
# 查看安装的所有包 pip list # 查看安装的包,哪些需要更新了 pip list -o/--outdated # 查看目前是最新版的包 pip list -u/--uptodate # 查看可编辑的包 pip list -e # 列出特定目录下的 pip list --path ~/.local/lib/python3.6/site-packages
其余请看附录
(4) 其他的 pip 操作简介
# 显示 pip install 的 包的信息 pip show torch pip show -f torch # 具体信息 # pip search 不能使用 # 查看链接 https://blog.csdn.net/chushudu/article/details/119517052 pip install pip_search pip_search torch
博客总结
pip list
python包管理工具pip download详解_科技_品阅网
pip uninstall 卸载关联_pip 用法一览表_weixin_39584549的博客-CSDN博客
附录
python包管理工具pip list 详解
pip list用于查看已安装的库,指定的选项不同输出的结果就不同,我们可以根据需要指定不同的选项。
这里我们主要讲述以下几个常用选项:--outdated、--uptodate、--local、--user、--path、--pre、--format、--not-required、--exclude。
outdated
这个选项用于列出可以更新的安装包,可以让我们知道哪些安装包需要更新了,比如在我机器上执行以下命令:
pip list --outdated
输出如下内容:
Package Version Latest Type ---------- ------- ------ ----- aiohttp 3.6.2 3.8.1 wheel attrs 19.3.0 21.4.0 wheel chardet 3.0.4 4.0.0 wheel idna 2.9 3.3 wheel multidict 4.7.5 5.2.0 wheel setuptools 39.2.0 59.6.0 wheel yarl 1.4.2 1.7.2 wheel
输出信息的每一行指出了可以更新到的版本以及安装包类型。
uptodate
这个选项列出了已是最新版本无需更新的安装包,比如在我的机器上执行以下命令:
pip list --uptodate
输出如下内容:
Package Version ------------------ ------- async-timeout 4.0.2 dataclasses 0.8 Deprecated 1.2.13 idna-ssl 1.1.0 importlib-metadata 4.8.3 itsdangerous 2.0.1 MarkupSafe 2.0.1 packaging 21.3 pip 21.3.1 pyparsing 3.0.7 redis 4.2.0 typing_extensions 4.1.1 Werkzeug 2.0.3 wrapt 1.14.0 zipp 3.6.0
这些安装包的版本都是最新且无需更新的。
local
这个选项告诉pip如果我们是在virtualenv下且有权访问全局安装包时,不列出全局安装包,比如在我机器上执行以下命令:
pip list --local
输出内容如下:
Package Version ------------------ ------- click 8.0.4 dataclasses 0.8 Flask 2.0.3 importlib-metadata 4.8.3 itsdangerous 2.0.1 Jinja2 3.0.3 MarkupSafe 2.0.1 Pillow 8.4.0 pip 20.0.2 PyMySQL 1.0.2 setuptools 46.1.3 typing-extensions 4.1.1 Werkzeug 2.0.3 wheel 0.34.2 zipp 3.6.0
可见比前面不带local选项列出的少了一些。
user
这个选项列出安装在user-site下的安装包,即执行pip install --user时安装的包,在我机器上执行以下命令:
pip list --user
输出内容如下:
Package Version ------------------ ------- async-timeout 4.0.2 dataclasses 0.8 Deprecated 1.2.13 importlib-metadata 4.8.3 itsdangerous 2.0.1 MarkupSafe 2.0.1 packaging 21.3 pyparsing 3.0.7 redis 4.2.0 typing_extensions 4.1.1 Werkzeug 2.0.3 wrapt 1.14.0 zipp 3.6.0
这些安装包都安装在我机器上的这个目录下:~/.local/lib/python3.6/site-packages。
path
这个选项告诉pip只列出path指定目录下的安装包,比如在我机器上执行以下命令:
pip list --path ~/.local/lib/python3.6/site-packages
输出内容与pip list --user是一样的。
pre
默认情况下pip只列出稳定版本的包,通过指定这个选项就会同时列出预发布和开发中的版本,比如在我的机器上执行以下命令:
pip list --outdated --pre
输出内容如下:
Package Version Latest Type ---------- ------- ------- ----- aiohttp 3.6.2 4.0.0a1 wheel attrs 19.3.0 21.4.0 wheel chardet 3.0.4 4.0.0 wheel idna 2.9 3.3 wheel multidict 4.7.5 5.2.0 wheel setuptools 39.2.0 59.6.0 wheel yarl 1.4.2 1.7.2 wheel
可以看到aiohttp那一行包含了alpha版本:4.0.0a1
format
这个选项指定输出格式,默认是列格式,这个选项有三个值可用,分别是:columns、freeze、json,比如执行以下命令:
pip list --uptodate --format freeze
输出内容如下:
async-timeout==4.0.2 dataclasses==0.8 Deprecated==1.2.13 idna-ssl==1.1.0 importlib-metadata==4.8.3 itsdangerous==2.0.1 MarkupSafe==2.0.1 packaging==21.3 pip==21.3.1 pyparsing==3.0.7 redis==4.2.0 typing_extensions==4.1.1 Werkzeug==2.0.3 wrapt==1.14.0 zipp==3.6.0
not-required
这个选项告诉pip只列出不被其它安装包依赖的安装包,比如在我机器上执行以下命令:
pip list --not-required
输出内容如下:
Package Version ------------ ------- aiohttp 3.6.2 itsdangerous 2.0.1 MarkupSafe 2.0.1 pip 21.3.1 redis 4.2.0 setuptools 39.2.0 Werkzeug 2.0.3
exclude
这个选项告诉pip从列出的安装包中排除指定的安装包,也就是说这个选项指定的安装包不会出现在输出中,比如在我机器上执行以下命令:
pip list --not-required --exclude aiohttp
输出如下:
Package Version ------------ ------- attrs 19.3.0 chardet 3.0.4 idna-ssl 1.1.0 itsdangerous 2.0.1 MarkupSafe 2.0.1 pip 21.3.1 redis 4.2.0 setuptools 39.2.0 Werkzeug 2.0.3 yarl 1.4.2
可见输出的内容已经没有aiohttp这个安装包了。