在tox环境中为pip安装命令设置https代理

3 投票
1 回答
3837 浏览
提问于 2025-04-18 06:34

我需要为tox环境中的pip安装命令设置https代理

目前,我有这样的设置:

...
[toxenv:test]
install_command = pip install {opts} {packages}
commands = 
    <command1>
    <command2>
...

如果我只使用pip命令,比如:

pip install <package>

我会遇到错误,因为我在代理后面。

所以我做了这样的设置,效果很好:

https_proxy=<proxy_url> pip install <package>

但是,问题是我只想为pip安装命令设置代理,而其他命令(command1command2等)应该不设置代理。

所以我的问题是,如何在tox中仅为pip安装命令设置https代理,并确保其他命令不设置代理。

附注:这样做是行不通的:

install_command = https_proxy=<proxy_url> pip install {opts} {packages}

附注的附注:pip --proxy选项也没用,因为它只设置http_proxy

提前谢谢!

1 个回答

3
#!/bin/bash
https_proxy=$my_https_proxy http_proxy=$http_proxy pip $@
[testenv]
setenv =    
   my_http_proxy = <proxy_url>
   my_https_proxy = <proxy_url>
install_command = proxy_pip.sh install {opts} {packages}
commands = 
    <command1>
    <command2>

你可以在tox会话中设置环境变量,并把你的pip命令放在一个脚本里。

proxy_pip.sh是这个脚本的名字。

tos.ini是另一个文件的名字。

撰写回答