Ubuntu 20.04下Anaconda ProxyError问题的解决方法求助
我之前在公司内网环境里也碰到过一模一样的Conda代理配置问题,结合你的情况给你几个具体的排查和修复方向:
1. 修正.condarc的代理格式(最可能的原因)
很多公司的代理服务器对于HTTP和HTTPS请求,都是使用HTTP协议的代理地址,而非分别配置http://和https://。你可以把.condarc里的proxy_servers部分改成这样试试:
proxy_servers: http: http://username:password@corp.com:8080 https: http://username:password@corp.com:8080
另外注意:.condarc是YAML格式,冒号后面必须有空格;如果用户名或密码包含特殊字符(比如@、!、&),需要用双引号包裹,例如"myuser:pass@123"。
2. 别再执行source ~/.condarc!
.condarc是Conda的专属配置文件,不是Shell脚本,source它完全没用——Conda会自动读取这个文件的配置。之前的source操作反而可能给环境变量带来不必要的干扰。
3. 验证代理服务器的可用性
先手动用curl测试代理能不能正常访问清华镜像,执行以下命令:
curl -x http://username:password@corp.com:8080 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/current_repodata.json
- 如果返回一堆JSON内容,说明代理没问题,问题出在Conda的配置细节上;
- 如果curl也报错(比如连接超时、认证失败),那说明代理本身有问题:可能是用户名/密码错误、端口不对,或者公司代理需要NTLM认证(这种情况需要用
cntlm工具中转代理,Conda不直接支持NTLM)。
4. 清除Conda缓存再测试
不管修改了什么配置,先清除Conda的缓存,避免旧的缓存文件干扰:
conda clean --all -y
然后再尝试执行conda update conda或者conda install -c conda-forge hoomd。
5. 检查系统级代理配置
虽然env | grep proxy没找到,但系统可能在全局配置文件里设置了代理,比如/etc/environment、/etc/profile或者~/.bashrc。你可以打开这些文件看看有没有http_proxy、https_proxy的配置,如果有,要么注释掉(避免和Conda的代理冲突),要么确保它们的格式和.condarc里的一致。
6. 临时禁用代理排查问题
如果公司网络允许直接访问外网(或者镜像站),可以临时注释掉.condarc里的proxy_servers部分,然后执行conda clean --all,再测试命令是否能正常运行。如果可以,那肯定是代理配置的细节有问题,回到第一步重新调整代理格式。
内容的提问来源于stack exchange,提问作者Qizan Chen

