通过YAML创建Conda环境遇PIP依赖冲突及版本找不到错误
问题解答
问题1:Python 3.10下要求<3.10的包之前能运行,创建Conda环境时却冲突?
- 之前能运行:pip默认不会严格校验包声明的Python版本限制,很多标注
<3.10的包实际代码兼容3.10,所以之前安装时没触发报错。 - 现在冲突:Conda创建环境时会先统一解析所有依赖的版本约束,调用pip时会传递更严格的校验参数(或pip版本升级后默认校验更严格),此时会严格执行包的Python版本要求,触发冲突。另外核心问题是PyTorch dev版本找不到,这个报错可能引发连锁的依赖检查,放大了版本冲突问题。
问题2:能否通过conda create自动安装PyTorch dev版本,无需单独执行命令?
可以,只需修改environment.yml配置PyTorch的nightly通道:
- 在
channels部分添加pytorch-nightly通道(要放在默认通道前,优先拉取nightly包) - 在依赖中指定对应dev版本的PyTorch
修改后的示例environment.yml:
name: your_env_name channels: - pytorch-nightly - conda-forge - defaults dependencies: - python=3.10.11=h218abb5_2 - pytorch=2.1.0.dev20230422 - torchvision # 按需添加其他PyTorch相关依赖 # 你的其他依赖...
执行conda create --file environment.yml时,Conda会自动从nightly通道拉取指定的PyTorch dev版本,无需单独用pip安装,还能避免pip的版本校验冲突。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

