[Python] 包管理器Pip
序
- python的包管理器pip其实一直在用,但一直没有总结一下。过了许久后,再来摸,又会生疏。索性,那就总结一下吧,以便对此工具,常用常翻常新。
概述:Python包管理器 Pip
pip是Python的包管理工具,用于安装和管理Python包。
pip允许用户从Python包索引(PyPI)下载和安装软件包,确保项目所需的依赖项正确安装。
因此,掌握pip的使用对于Python开发至关重要。
PIP的安装与卸载
检查是否已安装 pip
在使用pip之前,首先需要检查你的系统中是否已经安装了pip。打开终端或命令提示符,输入以下命令:
pip --version
如果已安装,你会看到类似于以下的输出:
(base) C:\Users\xxx>pip --version
pip 24.3.1 from D:\Program\Miniforge3\Lib\site-packages\pip (python 3.12)
安装Pip
- 如果未安装,可以通过以下步骤进行安装:
安装方式1(通用方法)
Windows: 下载 get-pip.py,然后在命令提示符中运行:
【补充/可忽略】 tar 包下载 url : https://pypi.org/project/pip/#history
python get-pip.py
Linux/Mac: 使用以下命令:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# curl https://bootstrap.pypa.io/get-pip.py -o /opt/get-pip.py
python get-pip.py
安装方式2(Ubuntu)
## 安装
apt-get install python3-pip
# apt-get install python3 python3-pip python3-venv
## 卸载
# apt-get remove python3-pip
安装方式3(CENTOS)
## CentOS yum源 中默认没有 pip,需要安装 扩展源EPEL
yum -y install epel-release
## 安装 pip (python3)
yum -y install python3-pip
## 安装 pip (python2)
## yum -y install python-pip
## 查验版本
pip -V
PIP的使用
安装
- 安装包
pip install {packageName}
# 安装的是最新版本
pip install {packageName}
# 安装指定版本
pip install {packageName}==1.0.4
# 安装的最小版本
pip install '{packageName}>=1.0.4'
eg :
pip install requests
默认安装路径
全局环境: 默认情况下,pip 会将包安装到 Python 的
site-packages目录中。例
如:
Windows: C:\Python\XX\Lib\site-packages
Linux/MacOS: /usr/local/lib/pythonX.X/site-packages
虚拟环境: 如果在虚拟环境中使用 pip 安装,包会被安装到虚拟环境的
lib/site-packages目录下
- 安装自己的/当前的工程
pip install .
卸载
pip uninstall {packageName}
查看已安装的包
- 查看已安装的包:
可以列出当前环境中已安装的所有包及其版本
pip list

查看包信息
- 查看包信息
要查看某个包的详细信息,可以使用pip show命令:
pip show {packageName}
例如
(base) C:\Users\xxx>pip show requests
Name: requests
Version: 2.32.3
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache-2.0
Location: D:\Program\Miniforge3\Lib\site-packages
Requires: certifi, charset_normalizer, idna, urllib3
Required-by: conda, conda_package_streaming, langchain, langchain-community, langsmith, requests-toolbelt
- 查找包 【已废止/PyPI不建议使用】
如果你不知道要安装哪个包,可以使用
pip search命令来查找包:
pip search {keyword}
例如:查找与requests相关的包:
pip search requests
(base) C:\Users\xxx>pip search requests
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI no longer supports 'pip search' (or XML-RPC search). Please use https://pypi.org/search (via a browser) instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.
卸载包
- 卸载包:
可以卸载不再需要的包。
pip uninstall {packageName}
例如,卸载requests库可以使用命令pip uninstall requests。
执行日志
(base) D:\Workspace\xxx\MindSearch> pip show pydantic
Name: pydantic
Version: 2.6.4
Summary: Data validation using Python type hints
Home-page: https://github.com/pydantic/pydantic
Author:
Author-email: Samuel Colvin <s@muelcolvin.com>, Eric Jolibois <em.jolibois@gmail.com>, Hasan Ramezani <hasan.r67@gmail.com>, Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Terrence Dorsey <terry@pydantic.dev>, David Montague <david@pydantic.dev>, Serge Matveenko <lig@countzero.co>, Marcelo Trylesinski <marcelotryle@gmail.com>, Sydney Runkle <sydneymarierunkle@gmail.com>, David Hewitt <mail@davidhewitt.io>
License:
Location: C:\Users\xxx\AppData\Roaming\Python\Python312\site-packages
Requires: annotated-types, pydantic-core, typing-extensions
Required-by: fastapi, gradio, lagent, langchain, langchain-core, langsmith, pydantic-settings
(base) D:\Workspace\xxx\MindSearch> pip uninstall pydantic
Found existing installation: pydantic 2.6.4
Uninstalling pydantic-2.6.4:
Would remove:
c:\users\xxx\appdata\roaming\python\python312\site-packages\pydantic-2.6.4.dist-info\*
c:\users\xxx\appdata\roaming\python\python312\site-packages\pydantic\*
Proceed (Y/n)? Y
Successfully uninstalled pydantic-2.6.4
更新包
- 更新包
可以更新已安装的包到最新版本
pip install --upgrade {packageName}
查看帮助信息
- 查看帮助信息
可以查看pip的所有可用命令和用法说明
pip --help

PIP 常见问题
Q: 配置、使用镜像源
- 为了加快下载速度,可以使用国内的镜像源。
例如,使用清华大学的镜像源可以通过命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name来实现。
-i等效于--index-url
- 查看配置的镜像源
# 命令1
python -m pip config list
# 命令2
pip config list
- 临时更换
这种方法仅在当前终端会话有效,关闭窗口后将恢复到默认源。
在执行pip install命令时,只需添加-i参数并指定镜像地址
# 清华大学镜像源
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里云源 【推荐】
pip install markdown -i https://mirrors.aliyun.com/pypi/simple/
# 腾讯云源
pip install markdown -i https://mirrors.cloud.tencent.com/pypi/simple/
# 豆瓣源
pip install markdown -i http://pypi.douban.com/simple/
- 永久更换
# 查看配置
python -m pip config list
# 为了更便捷地操作,推荐采用永久设置的方式。
# 通过`pip config`命令,我们可以更改全局源地址:
# 1、更换为清华源
> python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\xxx\AppData\Roaming\pip\pip.ini
> python -m pip config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
# 2、更换为阿里源 【推荐】
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
# 3、更换腾讯云源
python -m pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple/
# 4、更换为豆瓣源
python -m pip config set global.index-url http://pypi.douban.com/simple/
# 要恢复默认源,只需运行
pip config unset global.index-url
或按如下操作:建个文件
~/.pip/pip.conf(windows:C:\Users\xxx\AppData\Roaming\pip\pip.ini), 内容如下:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
或
[global]
timeout = 6000
index-url = http://e.pypi.python.org/simple
[install]
use-mirrors = true
mirrors = http://e.pypi.python.org
或
[global]
index-url = http://b.pypi.python.org/simple
[install]
use-mirrors = true
mirrors = http://b.pypi.python.org
Q: 依赖包及版本管理、批量安装多个依赖包 by requirements.txt 【必读】
为什么要使用requirements.txt?
- 主要使用目的:任何应用程序通常需要设置安装所需、并依赖一组类库来满足工作要求。
requirements.txt文件是指定和一次性安装包的依赖项具体一整套方法。
requirements.txt的作用与类比:
依赖包及依赖版本管理 : Java
mavenvs. Pythonpip
依赖定义文件:pom.xmlvs.requirements.txt
requirements.txt文件格式:
demo
requests==1.2.0
Flask==0.10.1
Flask==0.10.1
pandas>=2.2.3
openpyxl
这样我们就可以批量/一次性地安装
requirements.txt的多个依赖
pip install -r requirements.txt
requirement 的自动生成方法
除了人工编辑该文件外,还可以自动生成。
- 方法1:整个环境下的安装包都保存到
requirements.txt中
pip freeze > requirements.txt
作用范围:
pip的freeze命令保存了保存当前Python环境下所有类库包,包括那些你没有在当前项目中使用的类库。 (如果你没有的virtualenv)
生成的
requirements.txt:速度非常快,不到1s
absl-py==0.11.0
aiohttp==3.7.3
async-timeout==3.0.1
attrs==20.3.0
boto3==1.16.41
botocore==1.19.41
cachetools==4.2.0
certifi==2020.12.5
chardet==3.0.4
click==7.1.2
dataclasses==0.8
docopt==0.6.2
filelock==3.0.12
Flask==1.1.2
fsspec==0.8.5
future==0.18.2
google-auth==1.24.0
google-auth-oauthlib==0.4.2
goto-statement==1.2
grpcio==1.34.0
idna==2.10
idna-ssl==1.1.0
importlib-metadata==3.3.0
itsdangerous==1.1.0
Jinja2==2.11.2
jmespath==0.10.0
joblib==1.0.0
Markdown==3.3.3
MarkupSafe==1.1.1
mkl-fft==1.2.0
mkl-random==1.1.1
mkl-service==2.3.0
multidict==5.1.0
nltk==3.5
numpy==1.19.4
oauthlib==3.1.0
olefile==0.46
packaging==20.8
pandas==1.1.5
Pillow @ file:///opt/concourse/worker/volumes/live/06069510-e277-4aed-54f4-6dfdcb84a461/volume/pillow_1603822272490/work
pipreqs==0.4.10
...//略
- 方法2:只生成单个项目中的使用到的安装包
pip install pipreqs
pipreqs .
作用范围:当前项目使用的类库导出生成为requirements.txt。
使用方法:pipreqs 加上当前路径即可。在导出当前项目使用的类库时,先定位到项目根目录,然后调用 pipreqs ./ --encoding=utf8 命令,该命令避免编码错误,并自动在根目录生成 requirements.txt 文件。
生成的
requirements.txt:有点慢,耗时1m多
xlwt==1.3.0
tqdm==4.54.1
prefetch_generator==1.0.1
nltk==3.5
transformers==3.4.0
xlrd==1.2.0
torch==1.7.1
XlsxWriter==1.3.7
numpy==1.19.4
requests==2.25.1
scikit_learn==0.24.1
一键安装/批量安装多个依赖包
【温馨提示】
最好先用conda建一个新环境,做好环境隔离。不然,很有可能会污染你原来的环境,会出现以前跑通的代码,现在跑不通了。
- 首先,可以通过创建一个包含包名称的文本文件
- 然后,使用命令
pip install -r requirements.txt来批量安装多个包。
pip install -r requirements.txt -i https://pypi.douban.com/simple
参考文献
Q: 示例项目 withrequirements.txt
- 为了更好地理解pip的使用,下面是一个简单的示例项目,展示如何使用pip管理依赖项。
- 项目依赖
my_project/
│
├── app.py
└── requirements.txt
- 编写代码
在app.py中,使用requests库进行HTTP请求:
import requests
response = requests.get('https://api.github.com')
print(response.json())
- 创建requirements.txt
将requests库添加到requirements.txt文件中:
requests==2.24.0
- 使用Pip安装依赖
在项目目录中,运行以下命令安装依赖:
pip install -r requirements.txt
- 运行项目
最后,运行
app.py文件:
python app.py
你将看到GitHub API的响应输出。
Q: 网络问题
如果在使用pip时遇到网络问题,可以尝试更换镜像源或使用离线安装包。例如:
pip install -i https://mirrors.aliyun.com/pypi/simple/ {packageName}
Q: 版本冲突
- 在更新或安装包时,可能会遇到版本冲突的问题。
可以通过指定版本号来避免这些问题
例如pip install package==1.0.0
Q: 权限问题
- 在某些情况下,安装包时可能会遇到权限问题。
方法1:可以使用
--user选项在用户目录中安装包:
pip install --user {packageName}
方法2:可能需要使用
sudo命令来获取管理员权限,特别是在Linux和macOS系统中。
Q:Python安装第三方库时出现Requirement already satisfied
用户尝试在两个不同的Python环境中安装pytz库,一个环境已经安装了2022.1版本,另一个是2022.7版本。
然后,使用pip install --target命令将pytz安装到指定路径,并提示目标目录已存在,可以选择--upgrade参数替换。
此外,pip版本过旧,推荐升级到23.1.2版本。
- 问题描述
C:\Users\111111>pip install pytz
Requirement already satisfied: pytz in d:\python3.8.5\lib\site-packages (2022.1)
WARNING: You are using pip version 20.2.4; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\python3.8.5\python3.8.5.exe -m pip install --upgrade pip' command.
C:\Users\111111>python -m pip install pytz
Requirement already satisfied: pytz in d:\anaconda\lib\site-packages (2022.7)
C:\Users\111111>pip install --target=d:\anaconda\lib\site-packages
ERROR: You must give at least one requirement to install (see "pip help install")
WARNING: You are using pip version 20.2.4; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\python3.8.5\python3.8.5.exe -m pip install --upgrade pip' command.
- 解决方法:
pip install --target=路径 包名
C:\Users\111111>pip install --target=d:\anaconda\lib\site-packages pytz
Collecting pytz
Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
|████████████████████████████████| 502 kB 819 kB/s
Installing collected packages: pytz
Successfully installed pytz-2023.3
WARNING: Target directory d:\anaconda\lib\site-packages\pytz already exists. Specify --upgrade to force replacement.
WARNING: You are using pip version 20.2.4; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\python3.8.5\python3.8.5.exe -m pip install --upgrade pip' command.
- 参考文献
Q:Windows 应用商店 的 Python & pip 常用命令
- 默认安装路径(python/pip)
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\python.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\python3.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\python3.12.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\pythonw.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\pythonw3.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\pythonw3.12.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\pip.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\pip3.exe
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\pip3.12.exe
- pip 升级
C:\Users\xxx> C:\Users\xxx\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe -m pip install --upgrade pip
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in c:\program files\windowsapps\pythonsoftwarefoundation.python.3.12_3.12.2800.0_x64__qbz5n2kfra8p0\lib\site-packages (25.0.1)
Collecting pip
Downloading pip-25.1.1-py3-none-any.whl.metadata (3.6 kB)
Downloading pip-25.1.1-py3-none-any.whl (1.8 MB)
---------------------------------------- 1.8/1.8 MB 18.5 kB/s eta 0:00:00
Installing collected packages: pip
WARNING: The scripts pip.exe, pip3.12.exe and pip3.exe are installed in 'C:\Users\xxx\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-25.1.1
Q:查看Python安装路径
# 导入sys模块
import sys
# 打印Python路径
print(sys.path)
Q: python 安装 pip 时,报Could not fetch URL https://pypi.org/simple/xxx/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/xxx/ (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:997)'))) - skipping?
- 问题描述
在 Ubuntu Linux 22 操作系统中,基于 python 和 安装脚本
get-pip.py时,报错:Could not fetch URL https://pypi.org/simple/xxx/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/xxx/ (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:997)'))) - skipping
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# curl https://bootstrap.pypa.io/get-pip.py -o /opt/get-pip.py
python get-pip.py
- 推荐文献
- 【日常踩坑】解决 pip 安装第三方包时因 SSL 报错 - CSDN
经过测试,当 pip 版本高于 20.3 后才会出现此错误。因此,除了更换pip的安装方式、科Xue上网方法外,我们也可以手动将 pip 版本降级至 20.2.4 或者 20.3b1 等较低版本。
pip install xxx-package -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install xxx-package -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
python -m pip install pip==20.2.4 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
python -m pip install pip==20.2.4 -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
X 参考文献
- Baidu GPT : PIP包管理器
- Python Pip 使用教程:从入门到精通 - CSDN
- pip模块安装超时,设置代理或更换源 - CSDN
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号