Kết hợp môi trường conda.yml với tệp pip request.txt


106

Tôi làm việc với môi trường conda và cũng cần một số gói pip, ví dụ như bánh xe được biên dịch trước từ ~ gohlke .

Hiện tại tôi có hai tệp: environment.ymlcho căn hộ với:

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

requirements.txtđối với pip có thể được sử dụng sau khi kích hoạt môi trường conda trên:

# 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

Có khả năng kết hợp chúng trong một tệp (đối với chung cư) không?


2
Có một yêu cầu kéo GitHub cho việc sử dụng tệp tests.txt trong conda. github.com/conda/conda-env/pull/172
OneCricketeer

3
conda env exportsẽ tạo văn bản cho .yml dựa trên các gói hiện được cài đặt.
Kenny

Câu trả lời:


131

Các phần phụ thuộc của Pip có thể được đưa vào environment.ymltệp như sau ( 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

Nó cũng hoạt động với .whlcác tệp trong cùng thư mục (xem câu trả lời của Dengar ) cũng như với các gói pip phổ biến.


3
Nó đã làm tốt! conda env create -f environment.ymlenvironment.ymltệp phải nằm trong thư mục hiện tại, nếu không, tệp sẽ bị lỗi kỳ lạ.
Johnny Zhang

37

Người ta cũng có thể sử dụng requirements.txttrực tiếp trong YAML. Ví dụ,

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

Về cơ bản, bất kỳ tùy chọn nào bạn có thể chạy vớipip install bạn đều có thể chạy trong YAML. Xem Ví dụ về Pip Nâng cao để biết thêm các tính năng khác.


Nghĩa -rlà gì? Nhìn vào các tùy chọn dòng lệnh của pip ( tại đây ) không có -rvì vậy sẽ rất hữu ích nếu bạn biết nó từ đâu (và nếu có một --dòng lệnh tương đương)
câm

3
Tìm thấy nó, tôi nên xem xét các pip installtùy chọn ở đây . -rlà dành cho tệp yêu cầu và tệp tương đương dài hơn là--requirement
câm

Có cách nào để sử dụng YAML mà không cần chung cư không? Hoặc chỉ định phiên bản python mà chúng tôi muốn trong tệp yêu cầu?
Mez13

@ Mez13 xin hỏi một câu mới.
merv

13

Chỉ muốn thêm rằng thêm một bánh xe trong thư mục cũng hoạt động. Tôi đã gặp lỗi này khi sử dụng toàn bộ URL:

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

Đã kết thúc việc tải xuống bánh xe và lưu nó vào cùng một thư mục với tệp yml.

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

2
Tôi đã đề cập điều này trong câu trả lời ở trên.
khốn nạn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.