能否为virtualenv设置专属.pypirc文件并指定其替代路径?
如何指定.pypirc文件的自定义存储位置
当然有办法!下面几种方式都能帮你把.pypirc放在virtualenv环境里或者其他任意位置:
1. 使用环境变量PYPIRC指定路径
这是最直接且通用的方法,不管你是否在virtualenv环境中,都可以通过设置环境变量告诉pip、setuptools这类工具去哪里找.pypirc文件。
比如在Linux/macOS下,激活virtualenv后临时设置可以用:
export PYPIRC=/path/to/your/virtualenv/.pypirc
如果想让这个配置在每次激活该virtualenv时自动生效,把上面的命令添加到virtualenv目录下的bin/activate文件末尾即可。
Windows系统中,激活virtualenv后临时设置的命令是:
set PYPIRC=C:\path\to\your\virtualenv\.pypirc
要永久生效的话,把这条命令追加到virtualenv的Scripts/activate.bat文件里就好。
2. 命令行参数直接指定(针对单次命令)
部分PyPI相关工具支持在执行命令时通过参数指定.pypirc路径,比如常用的上传工具twine就有--config-file参数:
twine upload --config-file /path/to/your/virtualenv/.pypirc dist/*
如果用setup.py上传包,也可以通过--rcfile参数指定:
python setup.py upload --rcfile /path/to/your/virtualenv/.pypirc
3. 硬编码配置(应急可用,不推荐长期使用)
如果只是临时测试,不想折腾环境变量,也可以直接在setup.py或者上传脚本里硬编码仓库配置,但这种方式不够灵活,且硬编码密码存在安全风险,谨慎使用:
from setuptools import setup setup( # 你的包基础配置... uploads={ "pypi": { "repository": "https://upload.pypi.org/legacy/", "username": "你的用户名", "password": "你的密码" } } )
总结来说,最推荐第一种环境变量的方式,既能让特定virtualenv环境单独使用专属的.pypirc,又不用每次执行命令都手动传参,非常省心。
内容的提问来源于stack exchange,提问作者Salim Fadhley
相关产品推荐
相关产品推荐

