文章目录
- 现代Python版本(3.4+)已内置pip,可通过以下命令验证: python -m pip –version # 或 pip –version 若未安装,可通过以下方式获取: Linux/macOS: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py Windows: (Invoke-WebRequest https://bootstrap.pypa.io/get-pip.py).Content | python –
- 保持pip最新版本至关重要: python -m pip install –upgrade pip
- 临时使用: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 永久配置: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 常用国内镜像源: 清华大学源 https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣源 https://pypi.douban.com/simple/ 中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 基础安装: pip install requests 指定版本: pip install django==4.2 pip install “flask>=2.0,<3.0” 升级包: pip install –upgrade pandas 卸载包: pip uninstall numpy
- 最佳实践: 使用虚拟环境 使用uv等现代化管理工具,开发时就将依赖写入 常规解决方案: pip freeze pip freeze > requirements.txt 但是这样做有一个问题,那就是pip freeze会把当前环境下的所有pip安装的包都导出到requirements.txt中,但是我们很难保证当前的环境只适用于着一个项目,也就是会引入很多不需要的包,为了解决这个问题,我们需要一个其他的工具,就是pipreqs。 pipreqs 安装pipreqs pip install pipreqs 如果是Windows系统,会报编码错误(UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 24: illegal multibyte sequence) 使用时,指定编码格式 pipreqs . –encoding=utf8 –force 定位到项目根路径,执行 pipreqs ./ 之后,requirements.txt将被生成至./路径下 从文件安装: pip install -r requirements.txt 高级依赖解析: pip install –no-deps package-name # 仅安装指定包,不安装依赖 pip install –pre package-name # 包含预发布版本
- 查看已安装包: pip list # 查询已经安装的所有包 pip list | findStr requests # 查询包含requests的包 查看包详情: pip show requests 输出 D:>pip show requestsName: requestsVersion: 2.31.0Summary: Python HTTP for Humans.Home-page: https://requests.readthedocs.ioAuthor: Kenneth ReitzAuthor-email: me@kennethreitz.orgLicense: Apache 2.0Location: C:Users{{user}}miniconda3Libsite-packagesRequires: certifi, charset-normalizer, idna, urllib3Required-by: conda, conda_package_streaming, DownloadKit, DrissionPage, google-api-core, html2image, huggingface-hub, requests-file, tiktoken, tldextract, webdriver-manager 检查过时包: pip list –outdated 该命令会去查询最新版本和本地库做比较,执行时间较长
- 安装可选依赖: pip install “package[extra1,extra2]” # 例如 pip install “requests[security]” 以Qwen-Agent库安装为例 平台特定依赖: pip install –platform win_amd64 package-name # 64位Windows pip install –platform win32 package-name # 32位Windows # 强制安装Linux版本的包(适用于WSL或特殊场景) pip install –platform manylinux2014_x86_64 –only-binary=:all: package-name # 安装macOS版本的包(通常不推荐,仅用于特殊测试) pip install –platform macosx_10_15_x86_64 –only-binary=:all: package-name 特别提醒 多数情况下用户不需要手动指定平台,pip会自动选择正确的版本 此技巧主要用于 为其他平台预先下载依赖(如Docker镜像准备) 解决某些特殊包的兼容性问题 企业内网部署时预先缓存依赖
- 3.2.1 查看缓存位置 pip cache dir # 清理特定包的缓存 pip cache remove package-name 使用 pip config list 查看配置 缓存位置可能被自定义配置覆盖,可以检查 pip 的全局配置: pip config list 3.2.2 设置缓存位置 pip config set global.cache-dir “D:datapipcache” 查看缓存: pip cache list 清理缓存: pip cache purge 再次执行 禁用缓存: pip install –no-cache-dir package-name
- 从本地安装: pip install /path/to/package 从源码安装(可编辑模式): pip install -e /path/to/package # 适合开发模式 构建分发包: pip install build python -m build
- 场景:在一些时候通过pip install xxx 安装第三方库的时候默认情况下安装最新版本,由于是最新版本有个稳定性就不得不考虑其中,所以部分场景会存在一些 bug 这就要求我们安装历史版本: 如果你是想单纯找到历史版本,下面这条命令就可以搞定: pip index versions xxxx 例如:
- 3.5.1 通过pip库安装 import pip def install_package(package_name): try: pip.main([‘install’, package_name, ‘-i’, ‘https://pypi.douban.com/simple/’]) print(f”Successfully installed {package_name}”) except Exception as e: print(f”Failed to install {package_name}: {str(e)}”) # 示例:安装requests库 install_package(‘requests’) 这段代码会导入pip库,并使用pip.main()函数来安装指定的库。 运行结果 WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.Looking in indexes: https://pypi.douban.com/simple/Requirement already satisfied: requests in d:devanaconda_dataenvsautolibsite-packages (2.28.2)Requirement already satisfied: idna<4,>=2.5 in d:devanaconda_dataenvsautolibsite-packages (from requests) (2.10)Requirement already satisfied: charset-normalizer<4,>=2 in d:devanaconda_dataenvsautolibsite-packages (from requests) (3.0.1)Requirement already satisfied: certifi>=2017.4.17 in d:devanaconda_dataenvsautolibsite-packages (from requests) (2022.12.7)Requirement already satisfied: urllib3<1.27,>=1.21.1 in d:devanaconda_dataenvsautolibsite-packages (from requests) (1.26.14)Successfully installed requests 尽量避免使用该方式,未来版本可能会失效 3.5.2 通过subprocess库安装 import subprocess def install_package(package_name): try: subprocess.check_call([‘pip’, ‘install’, package_name]) print(f”Successfully installed {package_name}”) except subprocess.CalledProcessError: print(f”Failed to install {package_name}”) # 示例:安装requests库 install_package(‘requests’) 这段代码会调用系统的pip命令来安装指定的库。
- 权限问题: pip install –user package-name # 用户级安装 版本冲突: pip install –ignore-installed package-name SSL错误: pip install –trusted-host pypi.org –trusted-host files.pythonhosted.org package-name
- 新旧解析器对比: 旧解析器(2020年前):简单但可能不一致 新解析器(默认):更严格但更可靠 强制使用旧解析器: pip install –use-deprecated=legacy-resolver package-name
- 并行安装: pip install -U pip # 确保pip最新版 pip install –use-feature=fast-deps package-name 二进制缓存: pip install –cache-dir /path/to/cache package-name
- pip-tools:高级依赖管理 pip install pip-tools pip-compile requirements.in # 生成精确的requirements.txt pipdeptree:依赖树可视化 pip install pipdeptree pipdeptree pipx:全局Python应用安装 pip install pipx pipx install black
- venv(Python内置): python -m venv myenv source myenv/bin/activate # Linux/macOS myenvScriptsactivate # Windows pip install package-name virtualenv(更强大): pip install virtualenv virtualenv myenv 以上就是Python包管理工具pip的使用完全指南的详细内容,更多关于Python pip的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: 10个技巧带你轻松掌握Python pip使用 Python多版本管理与pip升级的全面指南 Python 的 pip 命令常用操作和高级用法 Python包管理利器之pip命令的安装与使用入门指南 python中pip的使用方法详解 Python 管理依赖包工具pip, virtualenv详解
目录
- 一、pip安装与配置
- 1.1 获取pip
- 1.2 升级pip
- 1.3 配置国内镜像源
- 二、pip核心功能详解
- 2.1 包安装与管理
- 2.2 依赖管理
- 2.3 环境管理
- 三、pip高级技巧
- 3.1 选择性安装
- 3.2 缓存管理
- 3.3 构建与安装本地包
- 3.4 查询包的历史版本
- 3.5 代码中安装
- 四、pip疑难解答
- 4.1 常见错误处理
- 4.2 依赖解析策略
- 4.3 性能优化
- 五、pip生态系统
- 5.1 相关工具
- 5.2 与虚拟环境集成
现代Python版本(3.4+)已内置pip,可通过以下命令验证:
python -m pip --version # 或 pip --version
若未安装,可通过以下方式获取:
Linux/macOS:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
Windows:
(Invoke-WebRequest https://bootstrap.pypa.io/get-pip.py).Content | python -
保持pip最新版本至关重要:
python -m pip install --upgrade pip

临时使用:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
永久配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
常用国内镜像源:
- 清华大学源
https://pypi.tuna.tsinghua.edu.cn/simple - 豆瓣源
https://pypi.douban.com/simple/ - 中国科学技术大学
https://pypi.mirrors.ustc.edu.cn/simple - 阿里云
http://mirrors.aliyun.com/pypi/simple/ - 中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
基础安装:
pip install requests
指定版本:
pip install django==4.2 pip install "flask>=2.0,<3.0"
升级包:
pip install --upgrade pandas
卸载包:
pip uninstall numpy
最佳实践:
- 使用虚拟环境
- 使用uv等现代化管理工具,开发时就将依赖写入
常规解决方案:
pip freeze
pip freeze > requirements.txt
但是这样做有一个问题,那就是pip freeze会把当前环境下的所有pip安装的包都导出到requirements.txt中,但是我们很难保证当前的环境只适用于着一个项目,也就是会引入很多不需要的包,为了解决这个问题,我们需要一个其他的工具,就是pipreqs。
pipreqs
安装pipreqs
pip install pipreqs
如果是Windows系统,会报编码错误(UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 24: illegal multibyte sequence)
使用时,指定编码格式
pipreqs . –encoding=utf8 –force
定位到项目根路径,执行
pipreqs ./
之后,requirements.txt将被生成至./路径下
从文件安装:
pip install -r requirements.txt
高级依赖解析:
pip install --no-deps package-name # 仅安装指定包,不安装依赖 pip install --pre package-name # 包含预发布版本
查看已安装包:
pip list # 查询已经安装的所有包 pip list | findStr requests # 查询包含requests的包
查看包详情:
pip show requests
输出
D:>pip show requests
Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: C:Users{{user}}miniconda3Libsite-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: conda, conda_package_streaming, DownloadKit, DrissionPage, google-api-core, html2image, huggingface-hub, requests-file, tiktoken, tldextract, webdriver-manager
检查过时包:
pip list --outdated

该命令会去查询最新版本和本地库做比较,执行时间较长
安装可选依赖:
pip install "package[extra1,extra2]" # 例如 pip install "requests[security]"
以Qwen-Agent库安装为例

平台特定依赖:
pip install --platform win_amd64 package-name # 64位Windows pip install --platform win32 package-name # 32位Windows # 强制安装Linux版本的包(适用于WSL或特殊场景) pip install --platform manylinux2014_x86_64 --only-binary=:all: package-name # 安装macOS版本的包(通常不推荐,仅用于特殊测试) pip install --platform macosx_10_15_x86_64 --only-binary=:all: package-name
特别提醒
- 多数情况下用户不需要手动指定平台,pip会自动选择正确的版本
- 此技巧主要用于
- 为其他平台预先下载依赖(如Docker镜像准备)
- 解决某些特殊包的兼容性问题
- 企业内网部署时预先缓存依赖
3.2.1 查看缓存位置
pip cache dir # 清理特定包的缓存 pip cache remove package-name

使用 pip config list 查看配置
缓存位置可能被自定义配置覆盖,可以检查 pip 的全局配置:
pip config list

3.2.2 设置缓存位置
pip config set global.cache-dir "D:datapipcache"
查看缓存:
pip cache list

清理缓存:
pip cache purge

再次执行

禁用缓存:
pip install --no-cache-dir package-name
从本地安装:
pip install /path/to/package
从源码安装(可编辑模式):
pip install -e /path/to/package # 适合开发模式
构建分发包:
pip install build python -m build
场景:在一些时候通过pip install xxx 安装第三方库的时候默认情况下安装最新版本,由于是最新版本有个稳定性就不得不考虑其中,所以部分场景会存在一些 bug 这就要求我们安装历史版本:
如果你是想单纯找到历史版本,下面这条命令就可以搞定:
pip index versions xxxx
例如:

3.5.1 通过pip库安装
import pip
def install_package(package_name):
try:
pip.main(['install', package_name, '-i', 'https://pypi.douban.com/simple/'])
print(f"Successfully installed {package_name}")
except Exception as e:
print(f"Failed to install {package_name}: {str(e)}")
# 示例:安装requests库
install_package('requests')
这段代码会导入pip库,并使用pip.main()函数来安装指定的库。
运行结果
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Looking in indexes: https://pypi.douban.com/simple/
Requirement already satisfied: requests in d:devanaconda_dataenvsautolibsite-packages (2.28.2)
Requirement already satisfied: idna<4,>=2.5 in d:devanaconda_dataenvsautolibsite-packages (from requests) (2.10)
Requirement already satisfied: charset-normalizer<4,>=2 in d:devanaconda_dataenvsautolibsite-packages (from requests) (3.0.1)
Requirement already satisfied: certifi>=2017.4.17 in d:devanaconda_dataenvsautolibsite-packages (from requests) (2022.12.7)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in d:devanaconda_dataenvsautolibsite-packages (from requests) (1.26.14)
Successfully installed requests
尽量避免使用该方式,未来版本可能会失效
3.5.2 通过subprocess库安装
import subprocess
def install_package(package_name):
try:
subprocess.check_call(['pip', 'install', package_name])
print(f"Successfully installed {package_name}")
except subprocess.CalledProcessError:
print(f"Failed to install {package_name}")
# 示例:安装requests库
install_package('requests')
这段代码会调用系统的pip命令来安装指定的库。
权限问题:
pip install --user package-name # 用户级安装
版本冲突:
pip install --ignore-installed package-name
SSL错误:
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package-name
新旧解析器对比:
- 旧解析器(2020年前):简单但可能不一致
- 新解析器(默认):更严格但更可靠
强制使用旧解析器:
pip install --use-deprecated=legacy-resolver package-name
并行安装:
pip install -U pip # 确保pip最新版 pip install --use-feature=fast-deps package-name
二进制缓存:
pip install --cache-dir /path/to/cache package-name
pip-tools:高级依赖管理
pip install pip-tools pip-compile requirements.in # 生成精确的requirements.txt
pipdeptree:依赖树可视化
pip install pipdeptree pipdeptree

pipx:全局Python应用安装
pip install pipx pipx install black
venv(Python内置):
python -m venv myenv source myenv/bin/activate # Linux/macOS myenvScriptsactivate # Windows pip install package-name
virtualenv(更强大):
pip install virtualenv virtualenv myenv
以上就是Python包管理工具pip的使用完全指南的详细内容,更多关于Python pip的资料请关注风君子博客其它相关文章!
您可能感兴趣的文章:
- 10个技巧带你轻松掌握Python pip使用
- Python多版本管理与pip升级的全面指南
- Python 的 pip 命令常用操作和高级用法
- Python包管理利器之pip命令的安装与使用入门指南
- python中pip的使用方法详解
- Python 管理依赖包工具pip, virtualenv详解