การรวม conda environment.yml กับ pip requirements.txt


112

ผมทำงานกับสภาพแวดล้อม CONDA และต้องการแพคเกจ pip บางส่วนเช่นกันเช่นล้อก่อนรวบรวมจาก~ gohlke

ในขณะนี้ฉันมีสองไฟล์: environment.ymlสำหรับ conda กับ:

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

และrequirements.txtสำหรับ pip ที่สามารถใช้ได้หลังจากเปิดใช้งานสภาพแวดล้อม conda ด้านบน:

# 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 สำหรับการใช้ requirements.txt ใน conda github.com/conda/conda-env/pull/172
OneCricketeer

3
conda env exportจะสร้างข้อความสำหรับ .yml ตามแพ็คเกจที่ติดตั้งในปัจจุบัน
Kenny

คำตอบ:


140

การอ้างอิง Pip สามารถรวมอยู่ในenvironment.ymlไฟล์เช่นนี้ ( เอกสาร ):

# 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 ) เช่นเดียวกับแพ็คเกจ pip ทั่วไป


3
ทำได้ดี! conda env create -f environment.ymlและenvironment.ymlไฟล์ต้องอยู่ในไดเร็กทอรีปัจจุบันมิฉะนั้นจะเกิดข้อผิดพลาดแปลก ๆ
Johnny Zhang

47

นอกจากนี้ยังสามารถใช้requirements.txtโดยตรงใน YAML ตัวอย่างเช่น,

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

โดยพื้นฐานแล้วตัวเลือกใด ๆ ที่คุณสามารถเรียกใช้กับpip installคุณสามารถเรียกใช้ใน YAML ดูตัวอย่าง Pip ขั้นสูงสำหรับการแสดงความสามารถอื่น ๆ


อะไร-rหมายถึง? ดูที่ตัวเลือกบรรทัดคำสั่งของ pip ( ที่นี่ ) ไม่มี-rดังนั้นจึงจะมีประโยชน์ที่จะทราบว่ามาจากไหน (และมี--รูปแบบยาวเทียบเท่ากันหรือไม่)
dumbledad

3
พบว่าฉันควรจะได้มองไปที่pip installตัวเลือกที่นี่ -rมีไว้สำหรับไฟล์ความต้องการและสิ่งที่ยาวกว่าคือ--requirement
dumbledad

มีวิธีใช้ YAML โดยไม่มี conda หรือไม่? หรือระบุเวอร์ชันของ python ที่เราต้องการในไฟล์ความต้องการ?
Mez13

@ Mez13 โปรดถามคำถามใหม่
merv

14

แค่ต้องการเพิ่มว่าการเพิ่มวงล้อในไดเร็กทอรีก็ใช้ได้เช่นกัน ฉันได้รับข้อผิดพลาดนี้เมื่อใช้ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.