2016-03-04 57 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 
相關問題