我正在尝试使用 anaconda 创建一个虚拟环境,供我的团队其他成员使用。由于依赖包冲突,按照他们用于创建环境的相同步骤会产生错误。我让一位同事向我发送了他们的“conda 列表”,我将其转换为 yml。然后我尝试用“conda env create -f test_env.yml”从这里构建环境,当我这样做时,即使我知道这个环境是有效的,我仍然会得到冲突的包。
这是 yml:
name: isaw_env_2
dependencies:
- anaconda-client=1.6.3
- asn1crypto=0.22.0
- bleach=1.5.0
- ca-certificates=2022.07.19
- certifi=2021.5.30
- cffi=1.10.0
- chardet=3.0.4
- click=6.7
- clyent=1.2.2
- colorama=0.3.9
- cryptography=1.8.1
- decorator=4.1.2
- entrypoints=0.2.3
- flask=0.12.2
- html5lib=0.9999999
- icc_rt=2022.1.0
- icu=58.2
- idna=2.6
- intel-openmp=2022.1.0
- ipykernel=4.6.1
- ipython=6.1.0
- ipython_genutils=0.2.0
- ipywidgets=6.0.0
- itsdangerous=0.24
- jedi=0.10.2
- jinja2=2.9.6
- jpeg=9e
- jsonschema=2.6.0
- jupyter=1.0.0
- jupyter_client=5.1.0
- jupyter_console=5.2.0
- jupyter_core=4.3.0
- libpng=1.6.37
- markupsafe=1.0
- mistune=0.7.4
- mkl=2018.0.3
- mkl_fft=1.0.6
- mkl_random=1.0.1
- nbconvert=5.2.1
- nbformat=4.4.0
- notebook=5.0.0
- numpy=1.14.3
- numpy-base=1.14.3
- openssl=1.0.2u
- packaging=16.8
- pandocfilters=1.4.2
- path.py=10.3.1
- pickleshare=0.7.4
- pip=9.0.1
- prompt_toolkit=1.0.15
- pycparser=2.18
- pygments=2.2.0
- pyopenssl=17.0.0
- pyparsing=2.2.0
- pyqt=5.6.0
- pysocks=1.6.6
- python=3.6.10
- python-dateutil=2.6.1
- python-levenshtein=0.12.2
- pytz=2017.2
- pyyaml=3.12
- pyzmq=16.0.2
- qt=5.6.2
- qtconsole=4.3.1
- requests=2.18.4
- scikit-learn=0.19.1
- scipy=1.0.1
- setuptools=36.4.0
- simplegeneric=0.8.1
- sip=4.18
- six=1.10.0
- sqlite=3.39.2
- tbb=2021.5.0
- tbb4py=2021.3.0
- testpath=0.3.1
- tornado=4.5.2
- traitlets=4.3.2
- urllib3=1.21.1
- vc=14.2
- vs2015_runtime=14.27.29016
- wcwidth=0.1.7
- werkzeug=0.12.2
- wheel=0.29.0
- widgetsnbextension=3.0.2
- win_inet_pton=1.0.1
- wincertstore=0.2
- xlrd=1.0.0
- zlib=1.2.12
这是出现的错误消息:
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Package scikit-learn conflicts for:
mkl_fft=1.0.6 -> mkl[version='>=2019.4,<2021.0a0'] -> scikit-learn[version='0.13.1|0.14.1|0.15.0b1|0.15.2|0.16.1']
scikit-learn=0.19.1
无论我如何尝试,我都无法获得 scikit-learn 版本 0.19.1,这是需要准确的最重要的包版本。
我认为可能相关的唯一其他细节是环境所需的 python 版本是 3.6.10。我的基础环境中的 python 版本是 3.7.4。这可能是问题所在吗?我应该完全卸载 python 并重新安装 3.6.10 版本作为基础版本吗?
我尝试用 python=3.6.10 创建一个环境,然后在初始创建后尝试安装 scikit-learn 0.19.1。我试过一起创建它们。
我已经尝试从同事环境中的 yml 文件创建一个环境,该环境是有效的。
我已经尝试从 yml 中删除冲突的包并重试;希望这将使兼容包由 anaconda 确定。但是这样做会导致新的冲突包。重复这个过程最终会导致整个列表中的冲突包。
一个想法:你的Conda版本和你同事的一样吗?哪些包版本可用取决于您的 Conda 版本。可能是您拥有的 Conda 导致了您所看到的不兼容性。
您是否也尝试过使用同事的环境导出来创建环境:
conda env export > environment.yml
?
您的 test_env.yml 文件没有 channels 部分,可能是兼容版本不在默认频道中?