conda create --name new_enc python=3.10 Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa1fe67e660>: Failed to establish a new connection: [Errno 111] Connection refused')': /pkgs/main/tos.json
时间: 2025-05-26 09:25:39 浏览: 18
### Conda 创建环境时遇到连接错误的原因分析
当使用 `conda` 命令创建新环境并指定 Python 版本时,如果出现类似于 `[Errno 111] Connection refused` 的错误,通常表明网络通信存在问题。以下是可能的原因及其解决方案:
#### 可能原因
1. **本地服务未运行**
如果目标主机(如 `127.0.0.1` 或其他 IP 地址)上的特定端口未开放或对应的服务未启动,则会触发此错误。例如,在引用中提到的 `HTTPConnectionPool` 报错可能是由于目标服务器未监听该端口引起的[^1]。
2. **防火墙或安全组配置问题**
防火墙规则可能会阻止客户端与目标服务器之间的通信。即使服务已启动,但如果入站流量被拒绝,也会导致类似的错误消息[^3]。
3. **DNS 解析失败或代理设置不正确**
当前环境中可能存在 DNS 配置不当或者设置了不必要的 HTTP/HTTPS 代理,这会影响 `conda` 下载包的能力。特别是对于企业内部网络,代理可能导致请求无法到达外部资源[^2]。
4. **Conda 渠道不可达**
默认情况下,`conda` 使用 Anaconda 官方仓库来获取软件包。然而,这些渠道有时因地域限制或其他因素而变得不可用。尝试切换到国内镜像站点可以缓解这一情况。
#### 排查方法及解决措施
为了有效解决问题,请按照以下建议逐一排查:
- **验证服务状态**
- 对于依赖本地 API 调用的应用程序,确认相关微服务已经成功部署并且正在监听预期地址和端口号。
- **调整网络参数**
- 修改 `.condarc` 文件中的 channel 设置指向更稳定的源,比如清华大学开源软件镜像站(`https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free`)。
```yaml
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
```
- **清除缓存重试**
- 执行命令清理旧有的元数据记录后再重新执行安装操作。
```bash
conda clean --all
conda create -n myenv python=3.10
```
- **禁用代理变量(如有必要)**
- 若当前 shell 中存在 http_proxy 和 https_proxy 环境变量定义,临时取消它们的影响再测试连通性。
```bash
unset http_proxy https_proxy
```
通过以上步骤应该能够显著改善由网络层面引发的各种异常状况。
```python
import urllib3
try:
pool = urllib3.PoolManager()
response = pool.request('GET', 'http://localhost:9997/v1/cluster/auth')
except Exception as e:
print(e)
```
阅读全文
相关推荐














