10 个Python中Pip的使用技巧分享
作者:Python编程学习圈 发布时间:2023-08-02 17:52:45
众所周知,pip
可以安装、更新、卸载 Python 的第三方库,非常方便。你们中的许多人可能已经使用 pip
很长时间了,但不清楚它有哪些还不错的功能。希望我今天分享的技巧能让你从 Python pip
中受益。
Python pip
让我们从 Python 语言开始。Python 之所以受欢迎,不仅因为它易于学习,还因为它拥有成千上万的(宝)库。
这些库相当于已经集成的工具,只要安装了就可以在 Python 中使用。它们可以处理各种各样的问题,而无需你重新造轮子,而且随着社区的不断更新和维护,一些库越来越强大,几乎可以与企业级应用程序媲美。
那么如何下载安装这些工具库呢?它们被放置在一个名为 PyPi
(Python 包索引)的统一“仓库”中,所有库安装都会来源于该仓库。
有了仓库之后,还需要一个管理员,pip
就是这样一个角色。pip
从 PyPi
中取出库并将其安装到 Python 中。它还可以管理已安装的库,如更新、查看、搜索、卸载等。
下面总结了 10 个使用 pip 的常识和技巧,供大家参考。
1.安装 pip
从 Python 3.4 开始,pip
已经内置在 Python 中,因此无需再次安装。
如果你的 Python 版本没有 pip
,可以使用以下两种方法安装它。
在命令行输入
easy_install pip
,非常迅速。从以下网址下载
pip
安装文件,然后将其提取到 Python 脚本目录,并执行python setup.py install
命令。
pip
的下载地址:https://pypi.org/project/pip/#files
但是,如果您还在使用 Python3.4 及更早版本,请升级到 Python 的最新稳定版本(https://www.python.org/downloads/)。否则,您每天都会增加更多的技术债务。
2.升级 pip
如果 pip
的版本太低,可以升级当前版本:pip install --upgrade pip
或 pip install -U pip
。
$ pip install -U pip
Looking in indexes: https://pypi.python.org/simple
Requirement already satisfied: pip in ./test/lib/python3.8/site-packages (21.1.1)
Collecting pip
Using cached pip-22.0.4-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.1.1
Uninstalling pip-21.1.1:
Successfully uninstalled pip-21.1.1
Successfully installed pip-22.0.4
3.安装库
使用 pip
安装第三方库,可以执行如下语句:pip install package_name
指定包版本:pip install package_name==1.1.2
比如,我要安装 3.4.1 版本的 matplotlib
:pip install matplotlib==3.4.1
4. 库的批量安装
如果一个项目需要安装很多库,可以批量安装:pip install -r requirements.txt
文件的内容格式如下:
# This is a comment
# Specify a diffrent index
-i http://dist.repoze.org/zope2/2.10/simple
# Package with versions
tensorflow==2.3.1
uvicorn==0.12.2
fastapi==0.63.0
pkg1
pkg2
pkg3>=1.0,<=2.0
# It is possible to refer to specific local distribution paths.
./downloads/numpy-1.9.2-cp34-none-win32.whl
# It is possible to refer to other requirement files or constraints files.
-r other-requirements.txt
-c constraints.txt
# It is possible to specify requirements as plain names.
pytest
pytest-cov
beautifulsoup4
5.卸载和升级包
已安装的库可以再次卸载:$ pip uninstall package_name
当前库的版本升级:
$ pip install --upgrade package_name
或
$ pip install -U package_name
6. 冻结 Python pip 依赖
有时您想输出当前环境中所有已安装的包,或生成一个需求文件,然后通过该文件在另一个环境中进行安装。您可以使用 pip freeze
命令:
# List packages
$ pip freeze
docutils==0.11
Jinja2==2.7.2
MarkupSafe==0.19
Pygments==1.6
Sphinx==1.2.2
# Generate requirements.txt file
$ pip freeze > requirements.txt
请注意,包会以排序顺序列出(不区分大小写)。如果您只想列出非全局安装的软件包,请使用 -l/--local
。
7.查看库信息
您可以使用 pip show -f package_name
列出包信息:
$ pip show -f pyyaml
Name: PyYAML
Version: 5.4.1
Summary: YAML parser and emitter for Python
Home-page: https://pyyaml.org/
Author: Kirill Simonov
Author-email: xi@resolvent.net
License: MIT
Location: /private/tmp/test/lib/python3.8/site-packages
Requires:
Required-by: awscli
Files:
PyYAML-5.4.1.dist-info/INSTALLER
PyYAML-5.4.1.dist-info/LICENSE
PyYAML-5.4.1.dist-info/METADATA
PyYAML-5.4.1.dist-info/RECORD
PyYAML-5.4.1.dist-info/WHEEL
PyYAML-5.4.1.dist-info/top_level.txt
...
8.查看需要升级的库
在当前安装的库中,查看有哪些库需要进行版本升级:
$ pip list -o
Package Version Latest Type
---------- ------- ------ -----
docutils 0.15.2 0.18.1 wheel
PyYAML 5.4.1 6.0 wheel
rsa 4.7.2 4.8 wheel
setuptools 56.0.0 62.1.0 wheel
9. 检查兼容性问题
验证已安装的库的兼容性依赖,你可以使用 pip check package-name
:
$ pip check awscli
No broken requirements found.
如果您不指定包名称,将检查所有包的兼容性。
$ pip check
pyramid 1.5.2 requires WebOb, which is not installed.
10. 将库下载到本地
将库下载到本地的指定位置并以 whl
格式保存:pip download package_name -d "path"
$ pip download PyYAML -d "/tmp/"
Looking in indexes: https://pypi.python.org/simple
Collecting PyYAML
Downloading PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl (192 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 192.2/192.2 KB 4.7 MB/s eta 0:00:00
Saved ./PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl
Successfully downloaded PyYAML
$ ls /tmp/PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl
/tmp/PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl
来源:https://mp.weixin.qq.com/s/AREc4P8fj0X4S4TS_g89_w
猜你喜欢
- 在日常项目中,使用Json格式进行数据封装是比较常见的操作,看一下golang怎么实现。1、json序列化将json字符串转为go语言结构体
- Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于 * 底发明,第一个
- QSpinBox 是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也
- 与其他主流语言如 Javascript、Java 和 Python 相比,Golang 的错误处理方式可能和这些你熟悉的语言有所不同。所以才
- 在并发编程中,多个Goroutine访问同一块内存资源时可能会出现竞态条件,我们需要在临界区中使用适当的同步操作来以避免竞态条件。Go 语言
- 之前写过一篇 MySQL通过自定义函数的方式,递归查询树结构,从MySQL 8.0 开始终于支持了递归查询的语法CTE首先了解一下什么是 C
- fullcalendar 版本:v5.9.0解决方案fullcalendar next ,prev等切换月份的按钮是没有回调函数,要想由回调
- python和PHP相比较,python适合做爬虫。原因如下抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python
- 本文实例讲述了Python编程之序列操作。分享给大家供大家参考,具体如下:#coding=utf8''''&
- 1.问题描述当我们在实用ElementUI组件完成项目的时候可能会遇到这样的需求,比如:新建一个活动,需要定义活动的时间范围;因此我们在新建
- django在admin后台注册自己创建的数据库表,这样我们就可以在admin后台看到表结构信息,我们就可以在admin后台快速录入表记录信
- 在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下:python [-bBdEhiIOqsSuvV
- 今天用到BeautifulSoup解析爬下来的网页数据首先导入包from bs4 import BeautifulSoup然后可以利用url
- 前言本文从单元测试实践角度出发,提升对代码质量的意识。本文内容主要包括:单元测试、Mock测试、基准测试。测试测试可以提高代码的质量、减少事
- 查询重写插件从MySQL 5.7.6开始,MySQL Server支持查询重写插件,可以在服务器执行之前检查并可能修改服务器接收的语句。以下
- 我的机器不知为何,安装MySQL的时候,一到配置那一步就无休止的等待,只好结束任务,然而启动MySQL的时候出现1067错误提示
- 在 Go 语言中切片是使用非常频繁的一种聚合类型,它代表变长的序列,底层引用一个数组对象。一个切片由三个部分构成:指针、长度和容量。指针指向
- 代码如下:url="http://www.cidianwang.com/" wstr=getHTTPPage(
- 在JavaScript中,我们应该尽可能的用局部变量来代替全局变量,这句话所有人都知道,可是这句话是谁先说的?为什么要这么做?有什么根据么?
- 如下所示:def test1(): try: print('to do stuff')