Conda 在使用频道时无法解析 requirements.yml
Conda cannot parse requirements.yml when using channels
我正在尝试使用从另一个 conda 环境生成的 requirements.yml
文件创建一个带有 miniconda 的环境。我在处理来自渠道的包裹时遇到问题。
在机器上,requirements.yml
是使用以下命令从现有环境生成的:
(myenv)$ conda env export > requirements.yml
requirements.yml
文件的内容是(清除版本号后):
name: myenv
channels: !!python/tuple
- !!python/unicode
'defaults'
dependencies:
- pytest
- conda-forge::pytest-xdist
- pytest-cov
- numpy
- scipy
- pymongo
- auto::pycallgraph
- flask
- conda-forge::flask-restful
- conda-forge::flask-httpauth
- blaze::flask-mongoengine
- hugo::flask-security
- flask-wtf
- wtforms
- conda-forge::mongoengine
- pip:
- descartes
prefix: .miniconda2/envs/myenv
以上包已通过指定渠道安装"manually",例如
$(myenv) conda install -c conda-forge pytest-xdist
将requirements.yml
转移到另一台机器(相同架构,linux-64),conda创建新环境失败:
$ conda env create --file requirements.yml
Fetching package metadata .......
Solving package specifications: .
Error: Packages missing in current linux-64 channels:
- conda-forge::pytest-xdist
- auto::pycallgraph
- conda-forge::flask-restful
- conda-forge::flask-httpauth
- blaze::flask-mongoengine
- hugo::flask-security
- conda-forge::mongoengine
conda 好像无法解析语法 <channel>::<package name>
.
使用的系统:docker图像continuumio/miniconda。
您是否有任何想法如何从规范文件很好地创建新环境(例如,对持续集成有用)?
解决方案一:
将 conda 更新到版本 4.2.12(我的版本是 4.1)
conda update conda
然后通过加载需求文件创建环境
conda env create -f requirements.yml
方案二:
在文件的 channels
部分添加频道名称并删除包列表中的频道名称:
name: myenv
channels: !!python/tuple
- !!python/unicode
'defaults'
- !!python/unicode
'auto'
- !!python/unicode
'conda-forge'
- !!python/unicode
'blaze'
- !!python/unicode
'hugo'
dependencies:
- pytest
- pytest-xdist
- pytest-cov
- numpy
- scipy
- pymongo
- pycallgraph
- flask
- flask-restful
- flask-httpauth
- flask-mongoengine
- flask-security
- flask-wtf
- wtforms
- mongoengine
- pip:
- descartes
prefix: .miniconda2/envs/myenv
我正在尝试使用从另一个 conda 环境生成的 requirements.yml
文件创建一个带有 miniconda 的环境。我在处理来自渠道的包裹时遇到问题。
在机器上,requirements.yml
是使用以下命令从现有环境生成的:
(myenv)$ conda env export > requirements.yml
requirements.yml
文件的内容是(清除版本号后):
name: myenv
channels: !!python/tuple
- !!python/unicode
'defaults'
dependencies:
- pytest
- conda-forge::pytest-xdist
- pytest-cov
- numpy
- scipy
- pymongo
- auto::pycallgraph
- flask
- conda-forge::flask-restful
- conda-forge::flask-httpauth
- blaze::flask-mongoengine
- hugo::flask-security
- flask-wtf
- wtforms
- conda-forge::mongoengine
- pip:
- descartes
prefix: .miniconda2/envs/myenv
以上包已通过指定渠道安装"manually",例如
$(myenv) conda install -c conda-forge pytest-xdist
将requirements.yml
转移到另一台机器(相同架构,linux-64),conda创建新环境失败:
$ conda env create --file requirements.yml
Fetching package metadata .......
Solving package specifications: .
Error: Packages missing in current linux-64 channels:
- conda-forge::pytest-xdist
- auto::pycallgraph
- conda-forge::flask-restful
- conda-forge::flask-httpauth
- blaze::flask-mongoengine
- hugo::flask-security
- conda-forge::mongoengine
conda 好像无法解析语法 <channel>::<package name>
.
使用的系统:docker图像continuumio/miniconda。
您是否有任何想法如何从规范文件很好地创建新环境(例如,对持续集成有用)?
解决方案一:
将 conda 更新到版本 4.2.12(我的版本是 4.1)
conda update conda
然后通过加载需求文件创建环境
conda env create -f requirements.yml
方案二:
在文件的 channels
部分添加频道名称并删除包列表中的频道名称:
name: myenv
channels: !!python/tuple
- !!python/unicode
'defaults'
- !!python/unicode
'auto'
- !!python/unicode
'conda-forge'
- !!python/unicode
'blaze'
- !!python/unicode
'hugo'
dependencies:
- pytest
- pytest-xdist
- pytest-cov
- numpy
- scipy
- pymongo
- pycallgraph
- flask
- flask-restful
- flask-httpauth
- flask-mongoengine
- flask-security
- flask-wtf
- wtforms
- mongoengine
- pip:
- descartes
prefix: .miniconda2/envs/myenv