我正在将许多环境从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
此必须(我认为)是一个已解决的问题。
在这个话题上,比我聪明的人可以让我知道他们会怎么做吗?
谢谢!
答案 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
它将避免很多麻烦。