pip 给指定 Python 环境安装和管理发行包。优先使用 python -m pip,让“安装到哪里”与正在调用的解释器对应起来。修改源之前先分清单次参数、环境变量与配置文件的作用范围。
先确认正在使用的环境
跳转到“先确认正在使用的环境”python -c "import sys; print(sys.executable)"python -m pip --versionpython -m pip listpython -m pip checkpip check 检查已安装包声明的依赖是否满足;它不会运行应用测试,也不会检查所有二进制兼容问题。虚拟环境的创建、激活与解释器选择参见 Conda 或 Python 的 venv 文档。
一次性选择包索引
跳转到“一次性选择包索引”-i 是 --index-url 的缩写,不能单独作为命令运行。例如:
python -m pip install --index-url https://pypi.org/simple/ "black==26.5.1"这条命令会安装或调整当前环境中的对应包。需要镜像时,把 URL 换成组织或镜像站明确支持的地址。原记录保留的地址如下,列出它们并不代表已经测试过当下可用性、同步延迟或全部包版本。
| 来源 | 原记录地址 |
|---|---|
| PyPI | https://pypi.org/simple/ |
| 清华 TUNA | https://pypi.tuna.tsinghua.edu.cn/simple |
| 阿里云 | https://mirrors.aliyun.com/simple |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple |
不要为了让命令成功就无条件添加 --trusted-host;正常 HTTPS 索引应通过证书验证。也不要把附带认证信息的索引地址复制到公开配置或错误截图中。
持久配置与恢复
跳转到“持久配置与恢复”python -m pip config debugpython -m pip config --user set global.index-url https://pypi.org/simple/python -m pip config --user unset global.index-url第二条写入用户级配置,第三条只移除同一层级的这个键。它们表示设置与撤销两种操作,不需要在每次安装时连着执行。global.index-url 中的 global 是配置段名;--user、--site、--global 才是文件层级的选择。仅为某个虚拟环境保存配置时可选择 --site。
原记录的 /home/lmx/.config/pip/pip.conf 是某个 Linux 用户的示例路径,通常对应 ~/.config/pip/pip.conf,不是所有机器的固定位置。Windows 用户级文件通常为 %APPDATA%\pip\pip.ini,虚拟环境还有自己的 pip.ini。旧位置、全局文件及 PIP_CONFIG_FILE 也可能参与加载,因此应以 pip config debug 的实际结果为准。
原来的 dir /S pip.ini 是 Windows CMD 的文件搜索思路,但找到一个同名文件不等于它正在被 pip 使用。删除 C:\Users\xx\pip\pip.ini 也不能保证恢复默认源。命令行参数优先于环境变量,环境变量又优先于配置文件;删除一个配置键后仍然走旧源时,继续检查 PIP_INDEX_URL 等变量及其他层级。规则见 pip 配置。
config debug 的输出可能包含本机路径或索引凭据,分享前应删去私密值。本次示例验证只使用临时配置,没有修改用户的 pip 配置。
缓存清理
跳转到“缓存清理”python -m pip cache dirpython -m pip cache infopython -m pip cache purge前两条帮助确认目录与占用,最后一条删除 pip 的 HTTP 和 wheel 缓存。它不会卸载已经安装到环境中的包;后续安装可能需要重新下载或构建。不要把缓存清理当作解决依赖冲突的通用步骤。子命令见 pip cache。
记录已安装版本
跳转到“记录已安装版本”python -m pip freeze > requirements.txtpython -m pip install --requirement requirements.txt第一条记录当前环境中的安装状态,第二条在选定的目标环境中按文件安装。先建立干净目标环境再安装,有助于避免原有包掩盖遗漏。freeze 默认可能略去引导工具;需要连同这些项目一起记录时使用 python -m pip freeze --all。
这个文件不是跨平台锁文件:它没有自动锁定操作系统库、编译器或每个平台的制品;可编辑安装、本地路径或直接 URL 也可能写入结果。分享前应阅读文件,确认没有本机专用路径和敏感地址。详情见 pip freeze。
自己的项目如何生成可安装的 wheel,见 Setuptools 与构建流程。