在pip的requirements.txt中使用环境变量访问私有仓库失败,如何解决?
解决Windows下requirements.txt环境变量替换PAT的认证问题
1. 修正requirements.txt的变量引用语法
Windows CMD环境中,环境变量的正确引用格式是%变量名%,而非Linux/bash的${变量名}。将你的requirements.txt内容修改为:
git+https://random:%PAT_AZURE%@myorg.visualstudio.com/myproject/_git/myrepo
2. 在同一会话中执行命令
必须在同一个CMD窗口中先设置环境变量,再执行pip安装,避免环境变量仅在当前会话有效:
set PAT_AZURE=MYACCESSGENERTEACCESSTOKEN pip install -r requirements.txt
3. PowerShell环境的适配
如果使用PowerShell,设置环境变量的命令改为:
$env:PAT_AZURE = "MYACCESSGENERTEACCESSTOKEN"
此时requirements.txt可以保留%PAT_AZURE%格式,或者改用PowerShell变量语法:
git+https://random:$env:PAT_AZURE@myorg.visualstudio.com/myproject/_git/myrepo
核心原因
硬编码令牌能正常工作,说明仓库地址和令牌本身无问题。问题出在Windows环境下,pip调用git时无法识别bash风格的${PAT_AZURE}变量,替换为Windows原生的变量引用格式即可完成认证。
内容的提问来源于stack exchange,提问作者Alex T
相关产品推荐
相关产品推荐

