结合conda environment.yml和pip requirements.txt


103

我在conda环境下工作,还需要一些pip包,例如〜gohlke的预编译轮。

目前,我有两个文件: environment.yml对于conda与:

# run: conda env create --file environment.yml
name: test-env
dependencies:
- python>=3.5
- anaconda

requirements.txt用于PIP可以上述环境康达激活后使用:

# run: pip install -i requirements.txt
docx
gooey
http://www.lfd.uci.edu/~gohlke/pythonlibs/bofhrmxk/opencv_python-3.1.0-cp35-none-win_amd64.whl

是否可以将它们合并到一个文件中(用于conda)?


2
有一个GitHub pull请求,用于在conda中使用Requirements.txt。github.com/conda/conda-env/pull/172
OneCricketeer 2016年

3
conda env export将根据当前安装的软件包为.yml生成文本。
肯尼

Answers:


128

点依赖可以包含在这样的environment.yml文件中(docs):

# run: conda env create --file environment.yml
name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
  # works for regular pip packages
  - docx
  - gooey
  # and for wheels
  - http://www.lfd.uci.edu/~gohlke/pythonlibs/bofhrmxk/opencv_python-3.1.0-cp35-none-win_amd64.whl

它也适用.whl于同一目录中的文件(请参阅Dengar的answer)以及常见的pip包。


3
做得好! conda env create -f environment.yml,并且environment.yml文件必须位于当前目录中,否则,将抛出奇怪的错误。
约翰尼·张

35

也可以requirements.txt直接在YAML中使用。例如,

name: test-env
dependencies:
  - python>=3.5
  - anaconda
  - pip
  - pip:
    - -r file:requirements.txt

基本上,您可以使用的任何选项都可以pip install在YAML中运行。有关其他功能的展示,请参见高级点子示例


什么-r意思 看着pip的命令行选项(在此),没有一个,-r因此了解它的来源(以及是否有--长形式的等价物)将非常有用
dumbledad

3
找到它之后,我应该在这里查看了这些pip install选项。是用于需求文件,而更长的等效文件是-r--requirement
dumbledad

13

只是想补充一点,在目录中添加轮子也可以。使用整个URL时出现此错误:

HTTP error 404 while getting http://www.lfd.uci.edu/~gohlke/pythonlibs/f9r7rmd8/opencv_python-3.1.0-cp35-none-win_amd64.whl

最终下载了转轮,并将其保存到yml文件所在的目录中。

name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
  - opencv_python-3.1.0-cp35-none-win_amd64.whl

2
我在上面的答案中提到了这一点。
bastelflp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.