python - 使用在 windows for linux 上创建的 conda env
问题描述
我正在将许多环境从 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
这必须(我假设)是一个已解决的问题。
在这个话题上比我更聪明的人请告诉我他们将如何解决这个问题?
谢谢!
解决方案
导出环境时,使用选项 --from-history。它只会导出您明确安装的库,而不是依赖项:
conda env export --from-history > environment.yml
不会导出任何平台特定信息。它将避免很多头痛。
通常,某些依赖项是特定于平台的。此外,默认的 conda env 导出将平台特定信息放入库中。这将使在 Windows 中创建的 environment.yml 文件在尝试在 Linux 中重新创建时失败,反之亦然。
Conda 和 Pip 并不能很好地在另一台机器上完美地重新创建环境,因为它们不会记录依赖关系的所有依赖关系。通常你不会有麻烦,但如果你有,很难发现依赖项的依赖项是稍微不同的版本。
额外提示:始终安装引用其版本号的库(例如:)conda install pandas=1.2.1
。如果没有版本,上面的命令将导出没有版本的依赖项,破坏环境的可重现性。
但是如果你从一个 environment.yml 文件创建你的环境呢?现在--from-history
将导出平台特定的依赖项。然后grep
是你的朋友。您将需要对所有导入语句进行 grep,查看它们中的哪些是在您的 environment.yml 文件中定义的,并且只需使用相同版本而不需要特定于平台的信息来使用它们。最好使用 --from-history 或手动编辑文件开始正确执行此操作。
推荐阅读
- python-3.x - 过一段时间尝试排除错误
- react-native - 清单:检测项目外的点击
- bash - 在 N 个可打印字符后截断彩色线条
- python - 写入 CSV 文件,选择要写入的列
- python - PyTorch - nn.Module 的功能等价物
- currency - 搜索特定的交易平台
- python - 在 python 中使用正则表达式解析 c 样式的嵌套结构
- javascript - 如何修复“SyntaxError:位置 1 处 JSON 中的意外标记 o”
- python - 为什么尽管我使用 dict(DEFAULT_DICT) 来初始化其他字典,但我的 DEFAULT_DICT 仍然会发生变化?
- php - 如何在使用 WP All Export Plugin 导出时序列化 Tm 额外产品选项订单数据