如何无错地导出和导入conda环境
How to export and import a conda environment without errors
我是这样导出一个conda环境的:
conda env export > environment.yml
´
然后提交 environment.yml 文件并将其拉取到 git 存储库。
我从另一台计算机克隆了存储库,然后尝试创建 conda 环境:
conda env create -f environment.yml
首先我收到一个警告:
Warning: you have pip-installed dependencies in your environment file,
but you do not list pip itself as one of your conda dependencies.
Conda may not use the correct pip to install your packages, and they
may end up in the wrong place. Please add an explicit pip dependency.
I'm adding one for you, but still nagging you
不知道为什么conda export在环境定义中没有包含pip
然后我得到了像 wrong/unavailable 版本的包这样的错误:
es-core-news-sm==3.0.0 version not found
我刚刚删除了版本部分,只留下了包的名称并让它与以下版本一起使用:
conda env update --prefix ./env --file environment.yml --prune
这里有更多详细信息:
我想知道如何避免这种行为?
es-core-news-sm==3.0
在 pypi 上不存在,其中只有 3.1 和 2.3.1 可用,因此出现您的错误消息。
这当然是特定于您所拥有的环境和所安装的软件包的东西。在您的特定情况下,只需删除版本即可解决问题,但不能保证这在所有情况下都有效。
至于原因,我只能猜测,但我预计你的情况是:
- 您已将
es-core-news-sm==3.0
安装到您的环境
- 那个包的开发者创建了一个新版本并决定删除旧版本
- 导出环境确实正确说明它包含
es-core-news-sm==3.0
- 从第 3 步的
.yaml
创建环境失败,因为包不再可用(参见 2.)
另一种选择(取决于您的用例)可能是使用 conda-pack
,它可以创建您的环境的打包版本,然后您可以将其解包。这仅在源计算机和目标计算机上的 OS 相同时有效
我是这样导出一个conda环境的:
conda env export > environment.yml
´
然后提交 environment.yml 文件并将其拉取到 git 存储库。
我从另一台计算机克隆了存储库,然后尝试创建 conda 环境:
conda env create -f environment.yml
首先我收到一个警告:
Warning: you have pip-installed dependencies in your environment file, but you do not list pip itself as one of your conda dependencies. Conda may not use the correct pip to install your packages, and they may end up in the wrong place. Please add an explicit pip dependency. I'm adding one for you, but still nagging you
不知道为什么conda export在环境定义中没有包含pip
然后我得到了像 wrong/unavailable 版本的包这样的错误:
es-core-news-sm==3.0.0 version not found
我刚刚删除了版本部分,只留下了包的名称并让它与以下版本一起使用:
conda env update --prefix ./env --file environment.yml --prune
这里有更多详细信息:
我想知道如何避免这种行为?
es-core-news-sm==3.0
在 pypi 上不存在,其中只有 3.1 和 2.3.1 可用,因此出现您的错误消息。
这当然是特定于您所拥有的环境和所安装的软件包的东西。在您的特定情况下,只需删除版本即可解决问题,但不能保证这在所有情况下都有效。
至于原因,我只能猜测,但我预计你的情况是:
- 您已将
es-core-news-sm==3.0
安装到您的环境 - 那个包的开发者创建了一个新版本并决定删除旧版本
- 导出环境确实正确说明它包含
es-core-news-sm==3.0
- 从第 3 步的
.yaml
创建环境失败,因为包不再可用(参见 2.)
另一种选择(取决于您的用例)可能是使用 conda-pack
,它可以创建您的环境的打包版本,然后您可以将其解包。这仅在源计算机和目标计算机上的 OS 相同时有效