使用在Windows上为Linux创建的conda env

时间:2019-04-29 00:34:17

标签: python cross-platform conda

我正在将许多环境从PC迁移到Linux。

我在Windows上运行:

C:\foo> conda env export > environment.yml

然后,在Linux上,我运行:

$ conda env create -f environment.yml

但是我收到类似这样的错误:

ResolvePackageNotFound: 
  - icc_rt=2017.0.4
  - vc=14
  - vs2015_runtime=14.0.25123
  - wincertstore=0.2
  - qt==5.9.5=vc14he4a7d60_0

必须(我认为)是一个已解决的问题。

在这个话题上,比我聪明的人可以让我知道他们会怎么做吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

是,不是。使用conda export将使其他人能够完全复制您的环境。这隐含地假设您在同一平台上。

不幸的是,在交换平台时,您需要处理依赖于平台的软件包。最简单的方法就是删除它们。请记住,如果您包含具有很多依赖性的高级程序包,则所有这些依赖性都将由conda查找/处理。

例如,如果要包含熊猫,则无需在环境规范中包含numpy,qt,matplotlib和dateutils。仅列出熊猫就足够了,conda负责其余工作。

通过这种方式,最好只在文本编辑器中手动列出最低的环境要求。

或者,您可以使用conda export,但是您可能仍然需要删除大量的内部版本号(即=vc17gnad8qt6h)和仅Windows(例如wincertstore)的软件包。

答案 1 :(得分:0)

导出环境时,请使用option --from-history。它将仅导出您明确安装的库,而不导出依赖项:

conda env export --from-history > environment.yml

它将避免很多麻烦。