在Python项目开发中,requirements.txt是管理依赖的核心文件,常规情况下执行pip install -r requirements.txt就能安装所有依赖。但如果部分包存储在非默认PyPI仓库,比如企业私有仓库、第三方定制仓库,就需要额外配置才能让安装过程正常执行。

直接在requirements.txt中指定包的来源仓库
这种方式是最直接的,不需要额外修改pip配置,只需要在requirements.txt文件中为每个来自指定仓库的包标注仓库地址即可。pip支持通过--extra-index-url参数或者直接在包路径中指定仓库地址。
使用--extra-index-url指定额外仓库
如果多个包都来自同一个指定仓库,可以在requirements.txt开头添加--extra-index-url 仓库地址,后续列出的包都会优先从该仓库查找,找不到再去默认PyPI仓库查找。
示例requirements.txt内容如下:
--extra-index-url https://pypi.ipipp.com/simple/ requests==2.31.0 numpy==1.26.0 # 以下包来自指定仓库 company_utils==1.0.2 internal_sdk==2.1.0
此时执行安装命令即可正常安装所有包:
pip install -r requirements.txt
为单个包指定完整仓库地址
如果只有个别包来自指定仓库,也可以直接在该包的安装路径中标注仓库地址,格式为包名==版本号 --index-url 仓库地址,或者直接使用仓库的包下载链接。
示例requirements.txt内容如下:
requests==2.31.0 numpy==1.26.0 # 单个包指定仓库 company_utils==1.0.2 --index-url https://pypi.ipipp.com/simple/ # 也可以直接使用包的完整下载链接 internal_sdk==2.1.0 https://pypi.ipipp.com/packages/internal_sdk-2.1.0-py3-none-any.whl
通过pip命令临时指定额外仓库
如果不想修改requirements.txt文件的内容,也可以在安装命令中通过--extra-index-url参数临时指定仓库地址,pip会同时从该仓库和默认仓库查找依赖。
命令格式如下:
pip install -r requirements.txt --extra-index-url https://pypi.ipipp.com/simple/
这种方式适合临时测试或者一次性安装的场景,不需要修改项目文件,也不会影响其他项目的pip配置。
配置pip全局额外仓库
如果当前环境下所有项目都需要从某个指定仓库安装部分包,可以配置pip的全局配置文件,添加额外仓库地址,这样后续所有pip安装命令都会自动使用该仓库。
Linux/macOS系统配置
编辑用户目录下的pip配置文件~/.pip/pip.conf,如果没有该文件可以手动创建,添加以下内容:
[global] extra-index-url = https://pypi.ipipp.com/simple/
Windows系统配置
编辑用户目录下的pip配置文件%APPDATA%pippip.ini,添加相同内容即可。
配置完成后,直接执行pip install -r requirements.txt就会自动从配置的额外仓库查找依赖。
常见问题与注意事项
- 如果指定仓库需要认证,需要在仓库地址中携带账号密码,格式为
https://用户名:密码@pypi.ipipp.com/simple/,注意特殊字符需要进行URL编码。 - 如果同时配置了多个额外仓库,pip会按照配置顺序依次查找,找到第一个匹配的包就会停止查找。
- 如果指定仓库的SSL证书不被信任,可以添加
--trusted-host 仓库域名参数,比如pip install -r requirements.txt --extra-index-url https://pypi.ipipp.com/simple/ --trusted-host pypi.ipipp.com。
不同场景的选择建议
如果是团队共享的项目,建议在requirements.txt中直接指定仓库地址,这样其他开发者拉取代码后不需要额外配置就能正常安装依赖。如果是个人临时测试,使用命令临时指定仓库更方便。如果是固定环境长期使用某个仓库,配置全局pip选项可以减少重复操作。
requirements.txtpipPython私有仓库包安装修改时间:2026-07-19 18:09:28