返回介绍

2.16. pip - A tool for installing and managing Python packages

发布于 2024-02-10 15:26:30 字数 8142 浏览 0 评论 0 收藏 0

2.16. pip - A tool for installing and managing Python packages

https://pip.readthedocs.io/en/stable/installing/

2.16.1. 安装 pip

自从Python 3.4版本开始,pip已经被内置在Python中,所以无需再次安装。如果你的系统中没有pip/pip3命令,或者不小心卸载了,可以使用下面方式安装。

2.16.1.1. 使用 easy_install 安装 pip

使用easy_install安装pip, 同时pip也是easy_install替代品

# easy_install pip

	

2.16.1.2. Ubuntu 安装 pip

$ sudo apt install python3-pip

	

2.16.1.3. Mac

neo@MacBook-Pro ~ % brew install python3
neo@MacBook-Pro ~ % pip3 install scrapy

	

安装 python3 会携带 pip3 命令

2.16.2. 查看版本

neo@MacBook-Pro-Neo ~ % pip --version
pip 21.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

neo@MacBook-Pro-Neo ~ % pip3 --version
pip 21.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)			

2.16.3. 升级 pip 命令

neo@MacBook-Pro-Neo ~ % pip install --upgrade pip

2.16.4. 查询包

查询包

$ pip search "Markdown"

2.16.5. 安装包

安装包

$ pip install Markdown

2.16.5.1. 指定版本号

安装特定版本的包, 通过使用 ==, >=, <=, >, < 来指定一个版本号。

比如说我要安装3.4.1版本的matplotlib

pip install matplotlib==3.4.1			

	
$ pip install 'Markdown<2.0'
$ pip install 'Markdown>2.0,<2.0.3'

	

用户级包管理,默认root是全局安装

pip3 install --user netkiller-firewall			

	

2.16.5.2. 安装 wheel文件

pip install dist/netkiller_firewall-0.0.1-py3-none-any.whl			

	

操作演示

neo@MacBook-Pro-Neo ~ % cd workspace/firewall 
neo@MacBook-Pro-Neo ~/workspace/firewall % ls dist 
netkiller-firewall-0.0.1.tar.gz           netkiller_firewall-0.0.1-py3.9.egg
netkiller_firewall-0.0.1-py3-none-any.whl
neo@MacBook-Pro-Neo ~/workspace/firewall % pip install dist/netkiller_firewall-0.0.1-py3-none-any.whl
Processing ./dist/netkiller_firewall-0.0.1-py3-none-any.whl
Installing collected packages: netkiller-firewall
Successfully installed netkiller-firewall-0.0.1			

	

2.16.6. 卸载包

卸载包

$ pip uninstall Markdown

2.16.7. 升级包

升级包到当前最新的版本,可以使用-U 或者 --upgrade

# pip install distribute --upgrade
$ pip install -U Markdown

2.16.8. 显示包详细信息

neo@MacBook-Pro-Neo ~ % pip show netkiller-logging
Name: netkiller-logging
Version: 0.0.5
Summary: log send to remote
Home-page: http://netkiller.github.io
Author: None
Author-email: netkiller@msn.com
License: BSD
Location: /usr/local/lib/python3.9/site-packages
Requires: 
Required-by: 			

2.16.9. 列出已经安装的包

neo@MacBook-Pro-Neo ~ % pip list                  
Package                                           Version
------------------------------------------------- ---------
autopep8                                          1.5.6
bleach                                            3.3.0
certifi                                           2020.12.5
chardet                                           4.0.0
click                                             7.1.2
colorama                                          0.4.4
cv                                                1.0.0
cycler                                            0.10.0
decorator                                         4.4.2
dlib                                              19.22.0
docutils                                          0.17			

查看需要升级的包

neo@MacBook-Pro-Neo ~ % pip list -o

目前已经安装的库中,看哪些需要版本升级

neo@MacBook-Pro-Neo ~ % pip list -o
Package                                           Version   Latest   Type
------------------------------------------------- --------- -------- -----
autopep8                                          1.5.6     1.5.7    wheel
decorator                                         4.4.2     5.0.7    wheel
docutils                                          0.17      0.17.1   wheel
easyocr                                           1.3.0.1   1.3.1    wheel
et-xmlfile                                        1.0.1     1.1.0    wheel
idna                                              2.10      3.1      wheel
importlib-metadata                                3.10.0    4.0.1    wheel
Pygments                                          2.8.1     2.9.0    wheel
pyobjc                                            7.1       7.2      wheel			

2.16.10. 批量安装库

如果一个项目需要安装很多库,可以将他们放入一个文件 requirements.txt,例如那可以批量安装:

pip install -r requirements.txt

requirements.txt 文件内容格式如下:

netkiller-logging==0.0.4
netkiller-firewall			

操作演示

neo@MacBook-Pro-Neo ~ % vim requirements.txt     

neo@MacBook-Pro-Neo ~ % cat requirements.txt 
netkiller-logging
netkiller-firewall
                               
neo@MacBook-Pro-Neo ~ % pip install -r requirements.txt 
Collecting netkiller-logging
  Downloading netkiller_logging-0.0.5-py3-none-any.whl (14 kB)
Collecting netkiller-firewall
  Downloading netkiller_firewall-0.0.1-py3-none-any.whl (5.4 kB)
Installing collected packages: netkiller-logging, netkiller-firewall			

2.16.10.1. 导出已安装的包

列出安装包的描述信息

	
$ pip freeze
	
	

操作演示

neo@MacBook-Pro-Neo ~ % pip freeze
autopep8==1.5.6
bleach==3.3.0
certifi==2020.12.5
chardet==4.0.0
click==7.1.2
colorama==0.4.4
cv==1.0.0
cycler==0.10.0
decorator==4.4.2
dlib==19.22.0
docutils==0.17
easyocr==1.3.0.1
et-xmlfile==1.0.1
face-recognition==1.3.0
face-recognition-models==0.3.0
idna==2.10
imageio==2.9.0
imageio-ffmpeg==0.4.3
importlib-metadata==3.10.0
keyboard==0.13.5
keyring==23.0.1
kiwisolver==1.3.1
lxml==4.6.3
matplotlib==3.4.1
moviepy==1.0.3
netkiller-devops==0.0.1
netkiller-kindle==0.0.3
networkx==2.5.1
numpy==1.20.2
opencv-python==4.5.1.48
openpyxl==3.0.7
packaging==20.9
pandas==1.2.4
Pillow==8.2.0
pkginfo==1.7.0
proglog==0.1.9
progress==1.5
PyAudio==0.2.11
pycodestyle==2.7.0
Pygments==2.8.1
pyobjc==7.1
python-dateutil==2.8.1
python-docx==0.8.10
pytz==2021.1
PyWavelets==1.1.1
PyYAML==5.4.1
readme-renderer==29.0
requests==2.25.1
requests-toolbelt==0.9.1
rfc3986==1.4.0
scikit-image==0.18.1
scipy==1.6.2
six==1.15.0
SpeechRecognition==3.8.1
tabulate==0.8.9
tifffile==2021.3.31
toml==0.10.2
torch==1.8.1
torchvision==0.9.1
tqdm==4.59.0
twine==3.4.1
typing-extensions==3.7.4.3
urllib3==1.26.4
webencodings==0.5.1
xlrd==2.0.1
zipp==3.4.1			

	

导出已经安装的包列表,并保存到到本地文件中:

	
pip freeze > requirements.txt			
	
	

2.16.11. 兼容性检查

验证已安装的包是否有兼容依赖问题

pip check package-name

操作演示

neo@MacBook-Pro-Neo ~ % pip check netkiller-firewall
No broken requirements found.

2.16.12. 从 PyPI 下载 whl 文件到本地硬盘

将库下载到本地指定目录

pip download package_name -d "要保存的文件路径"			

操作演示

neo@MacBook-Pro-Neo ~ % pip download netkiller-logging -d /tmp/netkiller-logging    
Collecting netkiller-logging
  Using cached netkiller_logging-0.0.5-py3-none-any.whl (14 kB)
Saved /private/tmp/netkiller-logging/netkiller_logging-0.0.5-py3-none-any.whl
Successfully downloaded netkiller-logging

neo@MacBook-Pro-Neo ~ % ls /tmp/netkiller-logging                               
netkiller_logging-0.0.5-py3-none-any.whl

2.16.13. 切换 pip 镜像

由于 pip 源服务器放在外国,所以我们安装包的时候速度非常慢。

国内一些企业和组织做了 pip 镜像,他们每个一定时间从外国服务器同步一次数据到国内服务器,我们将 pip 切换到国内服务器后,再下载包就不会去外国服务器,所以下载速度大大提高。

临时下载一个包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  matplotlib		

永久性切换

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

设为默认后,以后安装库都将从清华镜像源下载

下面是国内常用镜像服务器地址:

清华镜像 https://pypi.tuna.tsinghua.edu.cn/simple

阿里云镜像 https://mirrors.aliyun.com/pypi/simple/

中科大镜像 https://mirrors.bfsu.edu.cn/pypi/web/simple/

豆瓣镜像 http://pypi.doubanio.com/simple/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文