从YAML创建conda环境时Pip报NewConnectionError求助
解决通过environment.yml创建conda环境时pip安装依赖失败的问题
问题情况
在Windows的Ubuntu子系统中,尝试用environment.yml创建conda环境时,pip安装依赖包失败,触发NewConnectionError。首次失败发生在安装aiohttp==3.8.5,提示无法建立新连接且找不到匹配版本;移除该包后,安装aiohttp-cors时出现同样故障。
错误日志
Channels: - defaults - conda-forge Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done Installing pip dependencies: | Ran pip subprocess with arguments: ['/home/henrydavis88/anaconda3/envs/automoldesigner/bin/python', '-m', 'pip', 'install', '-U', '-r', '/home/henrydavis88/test/AutoMolDesigner/condaenv.fajfa6ib.requirements.txt', '--exists-action=b'] Pip subprocess output: Pip subprocess error: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa3c7c6d6a0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/aiohttp/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa3c7c6d9a0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/aiohttp/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa3c7c6dc10>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/aiohttp/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa3c7c6ddc0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/aiohttp/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa3c7c6dfa0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/aiohttp/ ERROR: Could not find a version that satisfies the requirement aiohttp==3.8.5 (from versions: none) ERROR: No matching distribution found for aiohttp==3.8.5 failed CondaEnvException: Pip failed
原environment.yml内容
name: automoldesigner channels: - defaults dependencies: - _libgcc_mutex=0.1=main - _openmp_mutex=5.1=1_gnu - ca-certificates=2023.05.30=h06a4308_0 - ld_impl_linux-64=2.38=h1181459_1 - libffi=3.4.4=h6a678d5_0 - libgcc-ng=11.2.0=h1234567_1 - libgomp=11.2.0=h1234567_1 - libstdcxx-ng=11.2.0=h1234567_1 - ncurses=6.4=h6a678d5_0 - openssl=3.0.10=h7f8727e_0 - pip=23.2.1=py39h06a4308_0 - python=3.9.16=h955ad1f_3 - readline=8.2=h5eee18b_0 - setuptools=68.0.0=py39h06a4308_0 - sqlite=3.41.2=h5eee18b_0 - tk=8.6.12=h1ccaba5_0 - tzdata=2023c=h04d1e81_0 - wheel=0.38.4=py39h06a4308_0 - xz=5.4.2=h5eee18b_0 - zlib=1.2.13=h5eee18b_0 - pip: - aiohttp==3.8.5 - aiohttp-cors==0.7.0 - aiosignal==1.3.1 - async-timeout==4.0.3 - attrs==23.1.0 - autogluon-common==0.8.2 - autogluon-core==0.8.2 - autogluon-features==0.8.2 - autogluon-tabular==0.8.2 - blessed==1.20.0 - blis==0.7.10 - boto3==1.28.30 - botocore==1.31.30 - cachetools==5.3.1 - catalogue==2.0.9 - catboost==1.2 - certifi==2023.7.22 - charset-normalizer==3.2.0 - click==8.1.7 - cloudpickle==2.2.1 - colorful==0.5.5 - confection==0.1.1 - contourpy==1.1.0 - cycler==0.11.0 - cymem==2.0.7 - descriptastorus==2.6.1 - dimorphite-dl==1.3.2 - distlib==0.3.7 - fastai==2.7.12 - fastcore==1.5.29 - fastdownload==0.0.7 - fastprogress==1.0.3 - filelock==3.12.2 - fonttools==4.42.1 - frozenlist==1.4.0 - future==0.18.3 - google-api-core==2.11.1 - google-auth==2.22.0 - googleapis-common-protos==1.60.0 - gpustat==1.1 - grpcio==1.50.0 - hyperopt==0.2.7 - idna==3.4 - importlib-resources==6.0.1 - jinja2==3.1.2 - jmespath==1.0.1 - joblib==1.3.2 - jsonschema==4.19.0 - jsonschema-specifications==2023.7.1 - kiwisolver==1.4.4 - langcodes==3.3.0 - lightgbm==3.3.5 - markupsafe==2.1.3 - matplotlib==3.7.2 - molvs==0.1.1 - msgpack==1.0.5 - multidict==6.0.4 - murmurhash==1.0.9 - networkx==3.1 - numpy==1.25.2 - nvidia-cublas-cu11==11.10.3.66 - nvidia-cuda-nvrtc-cu11==11.7.99 - nvidia-cuda-runtime-cu11==11.7.99 - nvidia-cudnn-cu11==8.5.0.96 - nvidia-ml-py==12.535.77 - opencensus==0.11.2 - opencensus-context==0.1.3 - packaging==23.1 - pandas==1.5.3 - pandas-flavor==0.6.0 - pathy==0.10.2 - pillow==10.0.0 - platformdirs==3.10.0 - plotly==5.16.1 - preshed==3.0.8 - prometheus-client==0.17.1 - protobuf==4.24.1 - psutil==5.9.5 - py-spy==0.3.14 - py4j==0.10.9.7 - pyasn1==0.5.0 - pyasn1-modules==0.3.0 - pydantic==1.10.12 - pyparsing==3.0.9 - pyside6==6.5.2 - pyside6-addons==6.5.2 - pyside6-essentials==6.5.2 - python-dateutil==2.8.2 - python-graphviz==0.20.1 - pytz==2023.3 - pyyaml==6.0.1 - ray==2.3.1 - rdkit==2023.3.3 - referencing==0.30.2 - requests==2.31.0 - rpds-py==0.9.2 - rsa==4.9 - s3transfer==0.6.2 - scikit-learn==1.2.2 - scipy==1.11.2 - shiboken6==6.5.2 - six==1.16.0 - smart-open==6.3.0 - spacy==3.6.1 - spacy-legacy==3.0.12 - spacy-loggers==1.0.4 - srsly==2.4.7 - tabulate==0.9.0 - tenacity==8.2.3 - tensorboardx==2.6.2.2 - thinc==8.1.12 - threadpoolctl==3.2.0 - torch==1.13.1 - torchvision==0.14.1 - tqdm==4.66.1 - typer==0.9.0 - typing-extensions==4.7.1 - urllib3==1.26.16 - virtualenv==20.24.3 - wasabi==1.1.2 - wcwidth==0.2.6 - xarray==2023.8.0 - xgboost==1.7.6 - yarl==1.9.2 - zipp==3.16.2
解决办法
- 排查网络连通性:在Ubuntu子系统中执行
ping pypi.org,如果无法连通,检查WSL网络设置,确保能正常访问外网。 - 配置pip国内镜像源:创建或修改子系统中的
~/.pip/pip.conf文件,添加国内镜像提升连接稳定性:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
- 优先用conda安装依赖:将
aiohttp、aiohttp-cors这类可通过conda安装的包,从environment.yml的pip列表移到conda依赖区,同时添加conda-forge频道(默认源可能缺少部分包)。修改后的文件示例:
name: automoldesigner channels: - defaults - conda-forge dependencies: - _libgcc_mutex=0.1=main - _openmp_mutex=5.1=1_gnu - ca-certificates=2023.05.30=h06a4308_0 - ld_impl_linux-64=2.38=h1181459_1 - libffi=3.4.4=h6a678d5_0 - libgcc-ng=11.2.0=h1234567_1 - libgomp=11.2.0=h1234567_1 - libstdcxx-ng=11.2.0=h1234567_1 - ncurses=6.4=h6a678d5_0 - openssl=3.0.10=h7f8727e_0 - pip=23.2.1=py39h06a4308_0 - python=3.9.16=h955ad1f_3 - readline=8.2=h5eee18b_0 - setuptools=68.0.0=py39h06a4308_0 - sqlite=3.41.2=h5eee18b_0 - tk=8.6.12=h1ccaba5_0 - tzdata=2023c=h04d1e81_0 - wheel=0.38.4=py39h06a4308_0 - xz=5.4.2=h5eee18b_0 - zlib=1.2.13=h5eee18b_0 - aiohttp=3.8.5 - aiohttp-cors=0.7.0 - pip: - aiosignal==1.3.1 - async-timeout==4.0.3 - attrs==23.1.0 # ... 剩余pip依赖保持不变 ...
- 重建conda环境:先删除失败的环境:
conda env remove -n automoldesigner
再重新执行创建命令:
conda env create -f environment.yml
- 手动安装pip依赖:若上述方法无效,可先创建基础conda环境,再激活后手动安装:
conda create -n automoldesigner python=3.9 pip conda activate automoldesigner # 将environment.yml中的pip依赖提取为requirements.txt后执行 pip install -r requirements.txt
内容的提问来源于stack exchange,提问作者henrydavis88
相关产品推荐
相关产品推荐

