Python包管理工具知识笔记
Python包管理工具是开发过程中不可或缺的利器,它们负责包的下载、安装、更新、依赖管理等核心工作。本文将详细梳理pip、conda、pdm、uv这四个主流包管理工具的关键使用知识,涵盖工具下载、镜像源配置、缓存目录管理、虚拟环境创建、常见命令及适用场景,为Python开发提供清晰的参考。
一、pip——Python官方默认包管理工具
pip是Python的官方包管理工具,轻量且易用,主要用于管理Python Package Index(PyPI)上的包,是Python开发的基础工具之一。
1. 下载对应包管理工具
pip的安装与Python版本紧密关联:
Python 2.7.9+ 及 Python 3.4+ 版本已默认集成pip,无需单独下载,可通过命令
pip --version(Python 2)或pip3 --version(Python 3)验证是否安装及版本信息。若未集成或需升级pip,可通过以下命令安装/升级:
Windows系统:
python -m ensurepip --upgrade(Python 3)或python2 -m ensurepip --upgrade(Python 2)Linux/macOS系统:
python3 -m ensurepip --upgrade(Python 3)或sudo apt-get install python-pip(Ubuntu系统Python 2)
2. 配置下载镜像源
默认PyPI源位于国外,下载速度较慢,配置国内镜像源可显著提升下载效率。常见国内镜像源包括阿里云、清华、豆瓣等。
临时使用镜像源:在安装包时通过
-i参数指定,例如:pip3 install numpy -i https://mirrors.aliyun.com/pypi/simple/永久配置镜像源:
- Windows系统:在用户目录(如C:\Users\用户名)下创建pip文件夹,新建pip.ini文件,写入以下内容:
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com- Linux/macOS系统:在用户目录下创建.config/pip文件夹(若不存在),新建pip.conf文件,写入内容与Windows的pip.ini一致。
3. 默认缓存目录及自定义缓存目录
默认缓存目录:pip会缓存下载的包以避免重复下载,不同系统默认路径不同:
Windows:C:\Users\用户名\AppData\Local\pip\Cache
Linux:~/.cache/pip
macOS:~/Library/Caches/pip
可通过命令
pip3 cache dir查看当前系统的具体缓存目录。
自定义缓存目录:通过
--cache-dir参数指定,例如:pip3 install pandas --cache-dir D:\pip_cache,也可在pip配置文件中添加cache-dir = 自定义路径实现永久配置。
4. 创建虚拟环境
pip本身不直接提供虚拟环境创建功能,需结合Python内置的venv模块(Python 3.3+)或第三方工具virtualenv:
使用venv创建(推荐):
创建虚拟环境:
python3 -m venv 虚拟环境名称(如python3 -m venv myenv)激活虚拟环境:
Windows:
myenv\Scripts\activateLinux/macOS:
source myenv/bin/activate
退出虚拟环境:
deactivate
使用virtualenv创建(需先安装):
安装virtualenv:
pip3 install virtualenv创建虚拟环境:
virtualenv 虚拟环境名称激活/退出方式与venv一致。
5. 其他常见命令
安装包:
pip3 install 包名(指定版本:pip3 install 包名版本号,如pip3 install requests2.31.0)升级包:
pip3 install --upgrade 包名卸载包:
pip3 uninstall 包名(加-y跳过确认)查看已安装包:
pip3 list(详细信息:pip3 show 包名)导出依赖清单:
pip3 freeze > requirements.txt从依赖清单安装:
pip3 install -r requirements.txt清理缓存:
pip3 cache purge
二、conda——跨语言的包与环境管理工具
可点击移步查看conda如何创建虚拟环境并配置到PyCharm
conda是Anaconda和Miniconda自带的包管理工具,不仅支持Python包,还能管理C/C++、R等其他语言的包,同时具备强大的环境管理能力,在数据科学领域应用广泛。
1. 下载对应包管理工具
conda需通过安装Anaconda或Miniconda获取,Miniconda是精简版(仅含conda和核心依赖),更轻量,推荐日常使用。
下载地址:
Miniconda:https://docs.conda.io/en/latest/miniconda.html(根据系统选择对应版本,如Windows 64位、macOS ARM64等)
Anaconda:https://www.anaconda.com/products/distribution
安装后验证:Windows打开Anaconda Prompt,Linux/macOS打开终端,输入
conda --version,显示版本信息即安装成功。
2. 配置下载镜像源
conda默认源下载速度较慢,配置国内镜像源(如清华源)可优化体验。
临时使用:安装包时通过
-c参数指定源,例如:conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ numpy永久配置:
- Windows:在用户目录(C:\Users\用户名)下找到.condarc文件(若不存在则新建),写入以下内容:
channels:-defaultsshow_channel_urls:truedefault_channels:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2custom_channels:conda-forge:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudLinux/macOS:操作与Windows一致,.condarc文件位于~/.condarc。
配置后清理索引缓存:
conda clean -i
3. 默认缓存目录及自定义缓存目录
默认缓存目录:conda缓存下载的包和环境文件,默认路径:
Windows:C:\Users\用户名.conda\pkgs 或 C:\ProgramData\Anaconda3\pkgs(系统级)
Linux:~/.conda/pkgs 或 /opt/anaconda3/pkgs(系统级)
macOS:~/.conda/pkgs 或 /Applications/Anaconda3/pkgs(系统级)
通过命令
conda config --show-sources可查看详细配置,其中pkgs_dirs字段即为缓存目录。
自定义缓存目录:通过修改.condarc文件添加pkgs_dirs配置,例如:
pkgs_dirs:-D:\conda_cache\pkgs# Windows自定义路径# - /home/用户名/conda_cache/pkgs # Linux/macOS自定义路径配置后保存,新的缓存将存储到指定路径。4. 创建虚拟环境
conda的核心优势之一是内置虚拟环境管理,操作简洁:
创建虚拟环境:
conda create -n 环境名称 python=版本号(如conda create -n data_env python=3.10,指定Python 3.10版本)激活虚拟环境:
Windows:
conda activate 环境名称Linux/macOS:
source activate 环境名称(conda 4.6+也支持conda activate)
退出虚拟环境:
conda deactivate查看所有环境:
conda env list或conda info --envs删除虚拟环境:
conda env remove -n 环境名称
5. 其他常见命令
安装包:
conda install 包名(指定版本:conda install 包名=版本号,如conda install pandas=2.1.0)升级包:
conda update 包名(升级所有包:conda update --all)卸载包:
conda remove 包名查看环境内已安装包:
conda list导出环境依赖:
conda env export > environment.yml从依赖文件创建环境:
conda env create -f environment.yml清理缓存:
conda clean -p(清理未使用的包)、conda clean -t(清理tar包缓存)
三、pdm——现代Python项目依赖管理工具
可点击查看具体文章
pdm(Python Development Master)是一款新一代的Python包管理工具,基于PEP 621标准,支持锁文件机制,能精准管理项目依赖,同时集成了虚拟环境管理、包发布等功能,适合现代Python项目开发。
1. 下载对应包管理工具
pdm可通过多种方式安装,推荐使用官方推荐的pipx或pip安装:
使用pipx安装(推荐,避免污染全局环境):
先安装pipx:
pip3 install pipx,并将pipx路径添加到环境变量(Windows需重启终端)安装pdm:
pipx install pdm
使用pip安装:
pip3 install pdm(可能会与全局包产生依赖冲突,不推荐)验证安装:
pdm --version
2. 配置下载镜像源
pdm支持配置PyPI镜像源,可通过命令行或配置文件设置。
临时使用:安装包时通过
--index-url参数指定,例如:pdm add numpy --index-url https://mirrors.aliyun.com/pypi/simple/永久配置:
命令行配置(推荐):
pdm config pypi.url https://mirrors.aliyun.com/pypi/simple/,设置后所有项目默认使用该源。配置文件修改:pdm的全局配置文件位于~/.config/pdm/config.toml(Linux/macOS)或C:\Users\用户名.config\pdm\config.toml(Windows),在文件中添加:
[pypi] url = "https://mirrors.aliyun.com/pypi/simple/"3. 默认缓存目录及自定义缓存目录
默认缓存目录:pdm缓存下载的包和虚拟环境文件,默认路径遵循系统规范:
Windows:C:\Users\用户名\AppData\Local\pdm\cache
Linux:~/.cache/pdm
macOS:~/Library/Caches/pdm
通过命令
pdm config可查看缓存相关配置,其中cache_dir字段即为缓存目录。
自定义缓存目录:通过命令行设置,例如:
pdm config cache_dir D:\pdm_cache(Windows)或pdm config cache_dir ~/pdm_cache(Linux/macOS),配置将永久生效。
4. 创建虚拟环境
pdm默认会为每个项目自动创建独立的虚拟环境,无需手动操作,也支持自定义虚拟环境配置。
自动创建虚拟环境:在项目目录下执行
pdm init,按照提示完成项目初始化(设置Python版本、项目名称等),pdm会自动创建虚拟环境并关联到项目。指定Python版本创建:
pdm init --python 3.10,强制使用Python 3.10版本创建虚拟环境。激活虚拟环境:
Windows:
pdm venv activateLinux/macOS:
source $(pdm venv activate --path)或直接使用pdm run 命令在虚拟环境中执行命令(如pdm run python script.py)
查看虚拟环境信息:
pdm venv list删除虚拟环境:
pdm venv remove 环境ID/名称
5. 其他常见命令
添加依赖包:
pdm add 包名(开发依赖:pdm add -d 包名,如pdm add -d pytest;指定版本:pdm add 包名==版本号)升级依赖包:
pdm update 包名(升级所有依赖:pdm update)卸载依赖包:
pdm remove 包名查看依赖树:
pdm list(详细依赖树:pdm show --tree)生成依赖文件:pdm自动生成pyproject.toml(项目依赖配置)和pdm.lock(依赖锁文件),无需手动导出
安装项目依赖:在包含pyproject.toml的目录下执行
pdm install,自动安装所有依赖清理缓存:
pdm cache clean
四、uv——极速Python包管理工具
可点击查看具体文章
uv是由astral.sh开发的新一代Python包管理工具,基于Rust语言编写,以极致的速度著称,支持虚拟环境管理、依赖解析和包安装,兼容pip的requirements.txt格式,同时支持pyproject.toml。
1. 下载对应包管理工具
uv的安装方式简洁,支持多平台快速安装:
Windows系统(PowerShell):
iwr https://astral.sh/uv/install.ps1 | iexLinux/macOS系统(Bash):
curl -LsSf https://astral.sh/uv/install.sh | sh通过pip安装:
pip3 install uv(速度较慢,不推荐)验证安装:
uv --version
2. 配置下载镜像源
uv支持配置PyPI镜像源,可通过环境变量或配置文件设置,操作简单。
临时使用:通过环境变量指定,例如:
Windows(PowerShell):
$env:UV_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/",然后执行安装命令Linux/macOS(Bash):
UV_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/" uv add numpy
永久配置:
Windows:在系统环境变量中添加UV_INDEX_URL,值为镜像源地址(如https://mirrors.aliyun.com/pypi/simple/)
Linux/macOS:在/.bashrc或/.zshrc中添加
export UV_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/",执行source ~/.bashrc生效
3. 默认缓存目录及自定义缓存目录
默认缓存目录:uv的缓存目录遵循XDG规范,不同系统路径如下:
Windows:C:\Users\用户名\AppData\Local\uv\cache
Linux:~/.cache/uv
macOS:~/Library/Caches/uv
通过命令
uv config show可查看缓存目录等配置信息。
自定义缓存目录:通过环境变量UV_CACHE_DIR指定,例如:
也可在系统环境变量中永久配置该路径。Windows(PowerShell):
$env:UV_CACHE_DIR="D:\uv_cache"Linux/macOS(Bash):
export UV_CACHE_DIR="$HOME/uv_cache"
4. 创建虚拟环境
uv的虚拟环境管理简洁高效,支持快速创建和激活。
创建虚拟环境:
uv venv(默认在项目目录下创建.venv文件夹作为虚拟环境),指定Python版本:uv venv --python 3.10激活虚拟环境:
Windows(PowerShell):
.venv\Scripts\Activate.ps1Linux/macOS(Bash):
source .venv/bin/activate
退出虚拟环境:
deactivate删除虚拟环境:直接删除.venv文件夹,或执行
uv venv remove(需在项目目录下)
5. 其他常见命令
安装包:
uv add 包名(指定版本:uv add 包名==版本号;安装requirements.txt依赖:uv pip install -r requirements.txt)升级包:
uv upgrade 包名(升级所有包:uv upgrade)卸载包:
uv remove 包名查看已安装包:
uv list生成requirements.txt:
uv pip freeze > requirements.txt清理缓存:
uv cache clean运行Python脚本:
uv run python script.py(直接在虚拟环境中执行,无需手动激活)
五、四个包管理工具的适用场景对比
工具
核心优势
适用场景
不适用场景
pip
官方默认、轻量、兼容性好、生态完善
简单Python项目开发;2. 快速安装PyPI上的包;3. 小型脚本或工具开发;4. 与venv/virtualenv配合使用的基础环境
复杂项目的依赖冲突解决;2. 跨语言包管理;3. 大规模项目的依赖版本精准控制
conda
跨语言管理、环境隔离彻底、数据科学包支持好
数据科学、机器学习项目(需安装C/C++依赖的包,如numpy、tensorflow);2. 多语言开发环境(同时使用Python、R、C++等);3. 需要统一管理系统级依赖的场景
纯Python的轻量项目(资源占用较大);2. 追求极致安装速度的场景;3. 需严格遵循PEP 621标准的现代Python项目
pdm
PEP 621标准、依赖锁机制、项目管理一体化
现代Python项目开发(符合PEP规范);2. 中大型项目的依赖精准管理;3. 需要发布Python包的场景;4. 重视依赖可复现性的项目
简单脚本开发(配置稍复杂);2. 依赖大量非PyPI源包的场景;3. 对工具学习成本敏感的新手快速开发
uv
极致速度、Rust编写、兼容pip生态、操作简洁
追求极致安装和依赖解析速度的场景;2. 兼容pip项目的快速迁移;3. 轻量到中大型Python项目;4. 对性能要求高的CI/CD流水线
需跨语言包管理的场景;2. 依赖特殊conda源包的项目;3. 对工具稳定性要求极高的核心生产环境(相对较新)
六、总结
pip作为Python官方工具,是基础且必备的包管理选择;conda在跨语言和数据科学领域不可替代;pdm是现代Python项目的理想选择,专注于依赖精准管理;uv则以极致速度为核心优势,兼容现有生态。在实际开发中,需根据项目类型、依赖复杂度、性能需求等因素选择合适的工具,也可结合使用(如conda创建基础环境,pip/pdm/uv管理Python包),以提升开发效率。