2016-03-04 59 views
28

虽然通过如下命令使用“畅达安装--yes --file requirements.txt”没有错误

conda install --yes --file requirements.txt

如果使用畅达在requirements.txt安装软件包的安装只提供封装的封装要求.TXT不可用,则它抛出,如下面所示的“无包装错误”:

Using Anaconda Cloud api site https://api.anaconda.org

Fetching package metadata: ....

Error: No packages found in current linux-64 channels matching: nimfa ==1.2.3

You can search for this package on anaconda.org with

anaconda search -t conda nimfa ==1.2.3 

而不是抛出一个错误的,是有可能改变这种行为,使得安装所有可用的软件包中requi rements.txt并为那些不可用的引发警告?

我想这是因为,错误所说的包nimfa不可用,可以安装pip。因此,如果我可以将conda install --yes --file requirements.txt的行为更改为仅提示不可用包的警告,我可以使用.travis.yml中的命令pip install -r requirments.txt来跟踪它,这样TravisCI会尝试从任何可用位置安装它。

回答

57

我最终只是遍历文件

$ while read requirement; do conda install --yes $requirement; done < requirements.txt

编辑的台词:如果你想安装使用PIP封装如果无法通过畅达,给这个一展身手:

$ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt

+2

感谢这一点,任何人都小提示使用它,请确保您的requirements.txt以换行符结束,从而使最终软件包在 –

+1

中读取有没有一种方法可以在迭代时自动'使用'conda install'来自动'pip install'软件包? – delusionX

+2

@delusionX,我已经扩展了答案。 –

2

this

提到你可以这样做

导出到文件.yml

conda env export > freeze.yml 

重现:

conda env create -f freeze.yml 
相关问题