使用“conda Install--yes--file requirements.txt”仅安装可用的软件包

2024-04-20 12:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

通过以下命令使用Conda在requirements.txt中安装包时

conda install --yes --file requirements.txt

如果requirements.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

与其抛出错误,是否可以更改此行为,使其在requirements.txt中安装所有可用的包,并对不可用的包发出警告?

我想这样做是因为,错误说的nimfa包不可用,可以安装pip。因此,如果我可以改变conda install --yes --file requirements.txt的行为,只对不可用的包发出警告,那么我可以使用travis.yml中的命令pip install -r requirments.txt跟踪它,以便TravisCI尝试从任何可用的位置安装它。


Tags: installorg命令txtapi警告packagesearch
3条回答

对于那些看的人,我用这个作为蒂尔霍夫曼的鱼壳解决方案:

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

以及

$ while read requirement; conda install --yes $requirement;or pip install $requirement; end < requirements.txt

最后我只是在文件的行上迭代

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

编辑:如果要使用pip安装软件包(如果无法通过conda使用),请执行以下操作:

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

编辑:如果您使用的是Windows(信用卡转到@Clay):

$ FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f" || pip install "%f"

您可以按照this中提到的方式执行此操作

导出到.yml文件

conda env export > freeze.yml

复制:

conda env create -f freeze.yml

相关问题 更多 >