การใช้ Pip เพื่อติดตั้งแพ็คเกจไปยัง Anaconda Environment


178

conda 4.2.13 MacOSX 10.12.1

ฉันพยายามติดตั้งแพคเกจจากpipสภาพแวดล้อมสด (เสมือน) ที่สร้างขึ้นโดยใช้อนาคอนดา ในเอกสารอนาคอนดามันบอกว่ามันดีมาก มันทำแบบเดียวกับ virtualenv

เปิดใช้งานสภาพแวดล้อมที่คุณต้องการนำโปรแกรมจากนั้นไปติดตั้งโปรแกรม ...

ฉันสร้างสภาพแวดล้อมที่ว่างเปล่าใน Ananconda เช่นนี้

conda create -n shrink_venv

เปิดใช้งาน:

source activate shrink_venv

จากนั้นผมก็สามารถมองเห็นในขั้วที่ฉันกำลังทำงานใน (shrink_venv)env เกิดปัญหาขึ้นเมื่อฉันพยายามติดตั้งแพคเกจโดยใช้pip:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

ดังนั้นฉันสามารถเห็นมันคิดว่าความต้องการเป็นที่พอใจจากแพคเกจทั้งระบบ ดังนั้นดูเหมือนว่าสภาพแวดล้อมจะทำงานไม่ถูกต้องไม่เหมือนที่กล่าวไว้ในเอกสาร ฉันกำลังทำอะไรผิดที่นี่?

เพิ่งทราบว่าฉันรู้ว่าคุณสามารถใช้conda installสำหรับแพ็คเกจ แต่ฉันมีปัญหากับหมอนจากอนาคอนด้าดังนั้นฉันจึงต้องการได้รับจากpipและเนื่องจากเอกสารบอกว่าไม่เป็นไร

ผลลัพธ์ของwhich -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

** อัพเดท ** ฉันเห็นว่านี่เป็นปัญหาทั่วไป สิ่งที่ฉันได้พบคือว่า env conda เล่นได้ไม่ดีกับ PYTHONPATH ดูเหมือนว่าระบบจะดูในตำแหน่ง PYTHONPATH เสมอแม้ว่าคุณจะใช้สภาพแวดล้อมแบบ conda ตอนนี้ฉันมักจะทำงานunset PYTHONPATHเมื่อใช้สภาพแวดล้อม conda และทำงานได้ดีขึ้นมาก ฉันใช้แม็ค


9
คุณไม่ลองconda install pip?
languitar

4
คุณสามารถเพิ่มผลลัพธ์ของwhich -a pipคำถามของคุณได้ไหม?
cel

1
คุณมีPYTHONPATHชุดตัวแปรสภาพแวดล้อมหรือไม่?
darthbith

1
มีปัญหาที่คล้ายกัน การใช้ pip ที่เป็นส่วนหนึ่งของ Anaconda อย่างชัดเจนดูเหมือนจะเหมาะกับฉัน
Arsene Lupine

1
การติดตั้งสิ่งต่าง ๆ โดยใช้ pip และ conda ปลอดภัยหรือไม่? ฉันคิดว่าคุณจะได้รับเป็นปัญหาเช่นไม่ทราบรุ่นแก้ไขถอนการติดตั้ง ...
ชาร์ลีปาร์กเกอร์

คำตอบ:


203

สำหรับคนอื่นที่เจอสถานการณ์นี้ฉันพบว่านี่เป็นวิธีที่ตรงไปตรงมาที่สุด:

  1. เรียกใช้conda create -n venv_nameและsource activate venv_nameที่venv_nameเป็นชื่อของสภาพแวดล้อมเสมือนของคุณ

  2. conda install pipวิ่ง นี้จะติดตั้ง pip ไปยังไดเรกทอรี venv ของคุณ

  3. ค้นหาไดเรกทอรีอนาคอนดาของคุณและค้นหาโฟลเดอร์ venv จริง /anaconda/envs/venv_name/มันควรจะเป็นที่อื่นเช่น

  4. /anaconda/envs/venv_name/bin/pip install package_nameติดตั้งแพคเกจใหม่ด้วยการทำ

ตอนนี้ควรติดตั้งแพคเกจเรียบร้อยแล้วโดยใช้ pip ของสภาพแวดล้อมเสมือนจริง!


2
มีการเปลี่ยนเส้นทางสำหรับbinโฟลเดอร์หรือไม่ ฉันไม่เห็นมันในvenv_nameโฟลเดอร์อีกต่อไปหรือ
แจ็ค

เพิ่งลองสร้าง venv ใหม่ดูเหมือนว่าbinยังอยู่ในที่เดียวกัน
Windmill

2
ไม่มีโฟลเดอร์ 'bin' ดังนั้นขั้นตอนด้านบนจึงช่วยได้ สิ่งหนึ่งที่ฉันจะเพิ่มคือการใช้ 'pip ใด' ช่วยในการกำหนด 'pip' ที่จริงติดตั้งแพคเกจและ 'pip freeze' ให้รายการของการติดตั้งในแพ็คเกจสิ่งแวดล้อม
Mykola

2
ฉันมีสถานการณ์ที่ถึงแม้ว่าแหล่งที่มาของฉันถูกเปิดใช้งานการติดตั้งของฉันไม่ได้เกิดขึ้นในสภาพแวดล้อม พวกมันถูกติดตั้งในตำแหน่งไพ ธ อนเริ่มต้น
Saisumanth Gopisetty

4
คำตอบนี้เป็นส่วนใหญ่: Run pipจาก env CONDA คุณ (ไม่ว่าจะเป็นสภาพแวดล้อมหรือไม่) และติดตั้งแพคเกจที่คุณต้องการใช้pipปฏิบัติการที่อยู่ในโฟลเดอร์ CONDA นี้ (กรณีของฉัน: AppData\Local\Continuum\anaconda3\Scripts)
มานูเอลมาร์ติเน

80

สิ่งที่คุณต้องทำคือเปิด Anaconda Prompt แล้วพิมพ์

pip install package-name

มันจะติดตั้งโดยอัตโนมัติกับสภาพแวดล้อมของงูใหญ่โดยไม่ต้องใช้

conda install package-name

เนื่องจากแพ็คเกจ conda บางตัวอาจไม่สนับสนุนการทำงานล่วงเวลาจึงจำเป็นต้องติดตั้งโดยใช้ pip และนี่เป็นวิธีหนึ่งในการทำ

หากคุณมี pip ติดตั้งในแอนาคอนดาคุณสามารถเรียกใช้สิ่งต่อไปนี้ในโน๊ตบุ๊ค jupyter หรือในไพ ธ อนเชลล์ที่เชื่อมโยงกับแอนาคอนดา

pip.main(['install', 'package-name'])

ตรวจสอบรุ่นของ pip pip.__version__กับ หากเป็นเวอร์ชั่น10.x.xหรือสูงกว่าให้ติดตั้งแพ็กเกจหลามของคุณด้วยรหัสบรรทัดนี้

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

ในสมุดบันทึก jupyter ของคุณคุณสามารถติดตั้งแพ็กเกจหลามผ่าน pip ในเซลล์ด้วยวิธีนี้

!pip install package-name

หรือคุณสามารถใช้เวอร์ชันหลามที่เชื่อมโยงกับอนาคอนดา

!python3.6 -m pip install package-name

6
คุณ "เปิด Anaconda prompt ได้อย่างไร"
Thomas Browne

3
ในหน้าต่างคุณต้องค้นหา 'anaconda prompt' โดยใช้ไอคอนค้นหาหรืออินพุตที่พบในแถบงานและเปิด
sambeth

@sambeth บน mac?
Parthapratim Neog

1
ฉันคิดว่ากุญแจสำคัญคือการใช้ pip ของอนาคอนด้าของคุณซึ่งอยู่ภายใต้สภาพแวดล้อมแบบอนาคอนดาของคุณหรือสภาพแวดล้อมที่เฉพาะเจาะจง
matanster

2
คำตอบนี้ไม่ถูกต้อง ประเด็นทั้งหมดของคำถามคือบางครั้งมันไม่ได้ติดตั้งในสภาพแวดล้อม มันติดตั้งทั่วโลก เพื่อป้องกันไม่ให้คุณต้องทำงานconda install pipภายในสภาพแวดล้อมเพื่อให้แน่ใจว่าคุณกำลังใช้ pip เวอร์ชั่นท้องถิ่น
peastman

33

ฉันแก้ไขปัญหานี้ด้วยวิธีต่อไปนี้:

หากคุณมี pip ที่ไม่ใช่ conda เป็น pip เริ่มต้นของคุณ แต่ conda python เป็นไพ ธ อนเริ่มต้นของคุณ (ดังด้านล่าง)

>which -a pip
/home/<user>/.local/bin/pip   
/home/<user>/.conda/envs/newenv/bin/pip
/usr/bin/pip

>which -a python
/home/<user>/.conda/envs/newenv/bin/python
/usr/bin/python

จากนั้นแทนที่จะเรียก pip install <package>คุณสามารถใช้การตั้งค่าสถานะโมดูล-mด้วย python เพื่อให้ใช้ anaconda python สำหรับการติดตั้ง

python -m pip install <package>

สิ่งนี้จะติดตั้งแพ็กเกจไปยังไดเร็กทอรีไลบรารี anaconda แทนที่จะเป็นไดเร็กทอรีไลบรารีที่เชื่อมโยงกับ (ไม่ใช่อนาคอนด้า) pip


3
นี่ควรเป็นคำตอบ ทำงานได้อย่างสมบูรณ์บน Windows
Geordie

9

หากคุณไม่ได้เพิ่ม pip เมื่อสร้างสภาพแวดล้อม conda

conda create -n env_name pip

และยังไม่ได้ติดตั้ง pip ภายในสภาพแวดล้อม

source activate env_name
conda install pip

จากนั้น pip เดียวที่คุณได้รับคือ pip ของระบบซึ่งจะติดตั้งแพ็กเกจทั่วโลก

รถบัสอย่างที่คุณเห็นในปัญหานี้แม้ว่าคุณได้ทำตามขั้นตอนข้างต้นแล้วพฤติกรรมของ pip ในสภาพแวดล้อม conda นั้นยังไม่ได้กำหนด

เพื่อให้แน่ใจว่าใช้ pip ที่ติดตั้งในสภาพแวดล้อม conda โดยไม่ต้องพิมพ์ความยาว/home/username/anaconda/envs/env_name/bin/pipฉันเขียนฟังก์ชันเชลล์:

# Using pip to install packages inside conda environments.
cpip() {
    ERROR_MSG="Not in a conda environment."
    ERROR_MSG="$ERROR_MSG\nUse \`source activate ENV\`"
    ERROR_MSG="$ERROR_MSG to enter a conda environment."

    [ -z "$CONDA_DEFAULT_ENV" ] && echo "$ERROR_MSG" && return 1

    ERROR_MSG='Pip not installed in current conda environment.'
    ERROR_MSG="$ERROR_MSG\nUse \`conda install pip\`"
    ERROR_MSG="$ERROR_MSG to install pip in current conda environment."

    [ -e "$CONDA_PREFIX/bin/pip" ] || (echo "$ERROR_MSG" && return 2)

    PIP="$CONDA_PREFIX/bin/pip"
    "$PIP" "$@"
}

หวังว่านี่จะเป็นประโยชน์กับคุณ


8

นี่คือสิ่งที่ใช้งานได้สำหรับฉัน (อ้างถึงภาพที่เชื่อมโยง)

  1. เปิด Anaconda
  2. เลือกสภาพแวดล้อมในบานหน้าต่างด้านซ้ายด้านล่างบ้าน
  3. ทางด้านขวาของตำแหน่งที่คุณเลือกและใต้แถบ "สภาพแวดล้อมการค้นหา" คุณจะเห็นฐาน (รูท) คลิกที่มัน
  4. สามเหลี่ยมที่ชี้ไปทางขวาควรปรากฏขึ้นคลิกเลือก "เทอร์มินัลเปิด" ที่เลือก
  5. ใช้คำสั่ง pip install ปกติที่นี่ ไม่จำเป็นต้องชี้ไปที่สภาพแวดล้อม / เส้นทาง

สำหรับการอ้างอิงในอนาคตคุณสามารถค้นหาโฟลเดอร์ที่แพ็กเกจของคุณกำลังดาวน์โหลดหากคุณมีคุณสมบัติตามที่กำหนดไว้แล้ว คุณสามารถดูได้หากคุณเลื่อนขึ้นในเครื่อง คุณควรอ่านสิ่งที่ชอบ: ความต้องการได้รับความพึงพอใจแล้วและเส้นทาง

[ pip ติดตั้งอนาคอนดา]


3

สำหรับผู้ที่ต้องการติดตั้งแพคเกจจำนวนน้อยใน conda ด้วย pip จากนั้นใช้

sudo $(which pip) install <instert_package_name>

ทำงานให้ฉัน

Explainaton

ดูเหมือนว่าสำหรับฉันแล้วwhich pipมันน่าเชื่อถือมากสำหรับการค้นหาเส้นทาง pip conda env ไปยังที่ที่คุณอยู่ อย่างไรก็ตามเมื่อใช้sudoงานสิ่งนี้ดูเหมือนว่าจะเปลี่ยนเส้นทางหรือทำลายสิ่งนี้

การใช้$(which pip)เรียกใช้งานสิ่งนี้เป็นอิสระจากsudoคำสั่งหรือคำสั่งใด ๆ และคล้ายกับการทำงาน/home/<username>/(mini)conda(3)/envs/<env_name>/pipใน Linux นี่เป็นเพราะ$()มีการรันแยกกันและเพิ่มข้อความเอาต์พุตให้กับคำสั่ง outer


3

คำตอบทั้งหมดข้างต้นส่วนใหญ่ขึ้นอยู่กับการใช้ virtualenv ฉันเพิ่งติดตั้งใหม่ของ anaconda3 และไม่มี virtualenv ใด ๆ ติดตั้งอยู่ ดังนั้นฉันได้พบทางเลือกที่ดีกว่าโดยไม่ต้องสงสัยเกี่ยวกับการสร้าง virtualenv

หากคุณติดตั้ง pip และ python version จำนวนมากใน linux ให้รันคำสั่งด้านล่างก่อนเพื่อแสดงรายการเส้นทางของ pip ที่ติดตั้งไว้ทั้งหมด

โดยที่ pip

คุณจะได้รับสิ่งนี้เป็นผลลัพธ์

pip: / usr / bin / pip /home/prabhakar/anaconda3/bin/pip/usr/share/man/man1/pip.1.gz

คัดลอกเส้นทางของ pip ที่คุณต้องการใช้ในการติดตั้งแพ็กเกจและวางหลังจาก sudo แทนที่/home/prabhakar/anaconda3/bin/pipด้วยคำสั่งด้านล่าง

/home/prabhakar/anaconda3/bin/pipติดตั้งsudo<package-name>

มันใช้งานได้ดีสำหรับฉัน หากคุณมีปัญหาในการติดตั้งโปรดแสดงความคิดเห็น


3

หากคุณใช้ windows OS ให้เปิดAnaconda Promptแล้วพิมพ์activate yourenvname

และถ้าคุณใช้ mac หรือ Linux OS ให้เปิดTerminalและพิมพ์source activate yourenvname

yourenvname นี่คือสภาพแวดล้อมที่คุณต้องการซึ่งคุณต้องการติดตั้ง pip package

หลังจากพิมพ์คำสั่งด้านบนคุณต้องเห็นว่าชื่อสภาพแวดล้อมของคุณเปลี่ยนจากbaseสภาพแวดล้อมที่พิมพ์yourenvnameในคอนโซลเอาต์พุต (ซึ่งหมายความว่าตอนนี้คุณอยู่ในบริบทสภาพแวดล้อมที่คุณต้องการ)

สิ่งที่คุณต้องทำก็คือpip installคำสั่งปกติเช่นpip install yourpackage

ด้วยการทำเช่นนั้นแพ็คเกจ pip จะถูกติดตั้งในสภาพแวดล้อม Conda ของคุณ


3

python -m pip install Pillow

จะใช้ pip ของ Python ปัจจุบันที่เปิดใช้งานด้วย

source activate shrink_venv


3

ขึ้นอยู่กับว่าคุณกำหนดค่าตัวแปรสภาพแวดล้อม PATH ของคุณอย่างไร เมื่อเปลือกของคุณแก้ไขการเรียกไปยัง pip ซึ่งเป็นช่องแรกที่มันจะหา?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

ตรวจสอบให้แน่ใจว่าโฟลเดอร์ช่องเก็บจากการติดตั้งแอนคอนดาของคุณอยู่ก่อน / usr / lib (ขึ้นอยู่กับวิธีที่คุณติดตั้ง pip) ตัวอย่างเช่น

(test) borja@xxxx:~$ pip install djangorestframework
....
Successfully installed asgiref-3.2.3 django-3.0.3 djangorestframework-3.11.0 pytz-2019.3 sqlparse-0.3.1

(test) borja@xxxx:~$ conda list | grep django
django                    3.0.3                    pypi_0    pypi
djangorestframework       3.11.0                   pypi_0    pypi

เราสามารถเห็นการติดตั้ง djangorestframework ในสภาพแวดล้อมการทดสอบของฉัน แต่ถ้าฉันตรวจสอบฐานของฉัน:

(base) borja@xxxx:~$ conda list | grep django

มันว่างเปล่า

ส่วนตัวฉันชอบจัดการการตั้งค่า PATH ทั้งหมดโดยใช้. pam_environmentนี่เป็นตัวอย่าง:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

คอมมาหนึ่งอัน วิธีที่คุณติดตั้ง pip อาจสร้างปัญหา:

  • คุณควรใช้: conda install pip -> แพ็คเกจใหม่ที่ติดตั้งด้วย pip จะถูกเพิ่มไปยังรายการ conda

  • คุณจะไม่ใช้: sudo apt ติดตั้ง python3-pip -> แพ็คเกจใหม่จะไม่ถูกเพิ่มลงในรายการ conda (ดังนั้นจะไม่ถูกจัดการโดย conda) แต่คุณจะยังสามารถใช้ (โอกาสที่จะเกิดข้อขัดแย้ง)


คอมมาหนึ่งอัน วิธีที่คุณติดตั้ง pip อาจสร้างปัญหา: - คุณควรใช้: conda install pip -> แพ็คเกจใหม่ที่ติดตั้งด้วย pip จะถูกเพิ่มเข้าไปในรายการ conda - คุณไม่ควรใช้: sudo apt ติดตั้ง python3-pip -> แพ็คเกจใหม่จะไม่ถูกเพิ่มลงในรายการ conda (ดังนั้นจึงไม่มีการจัดการ) แต่คุณจะยังสามารถใช้งานได้ (โอกาสที่จะเกิดความขัดแย้ง)
BorjaEst

สวัสดีทุกคน :) ฉันจะลบโฟลเดอร์ bin เช่น/usr/libในกรณีที่ว่ามันเป็นก่อนโฟลเดอร์ bin งูของฉันเมื่อทำงานwhereis pip?
Lenn

ลองsudo apt remove python3-pipที่จะลบ pip จากการกระจายลินุกซ์ของคุณและจากนั้นในสภาพแวดล้อม CONDA conda install -c anaconda pipคุณกำลังใช้:
BorjaEst

2

ฉันกำลังประสบปัญหาในการติดตั้งแพคเกจที่ไม่ใช่คอนโดบนแอนนาคอนดาฉันทำตามคำตอบที่ชอบมากที่สุดและมันก็ไปได้ไม่ดี (อาจเป็นเพราะแอนคอนดาของฉันอยู่ในไดเรกทอรี F และ env สร้างขึ้นใน C และโฟลเดอร์ bin ฉันไม่มีความคิด แต่มันไม่ได้ผล)

ตาม pip ของอนาคอนด้าติดตั้งแล้ว (ซึ่งพบได้โดยใช้คำสั่ง " conda list" ในพรอมต์อนาคอนดา) แต่แพ็กเกจ pip ไม่ได้รับการติดตั้งดังนั้นนี่คือสิ่งที่ฉันทำฉันติดตั้ง pip อีกครั้ง

conda install pip
pip install see

see เป็นแพ็คเกจที่ไม่มีเงื่อนไข


2

ฉันลองวิธีการข้างต้นทั้งหมดแล้ว ไม่มีใครทำงานให้ฉัน การทำงานต่อไปนี้สำหรับฉัน:

  1. เปิดใช้งานสภาพแวดล้อมของคุณ
  2. ดาวน์โหลดแพ็คเกจ. what ด้วยตนเองจาก https://pypi.org/simple/ /
  3. นำทางไปยังโฟลเดอร์ที่คุณดาวน์โหลด. whl จากบรรทัดคำสั่งโดยที่สภาพแวดล้อมของคุณเปิดใช้งาน
  4. ดำเนินการ: pip install package_name_whething.whl

1

ถ้าคุณเพียงต้องการที่จะมีการติดตั้ง CONDA เพียงลบเส้นทางไพ ธ อนอื่น ๆ ออกจากตัวแปร PATH ของคุณ

ออกจากเท่านั้น:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

สิ่งนี้จะช่วยให้คุณใช้งานได้ทันทีpip install *และจะติดตั้งลงในการติดตั้ง conda ของคุณโดยตรง


-1

ก็activate shrink_venvจะทำเช่นกัน ฉันพยายามสร้างสภาพแวดล้อมใหม่และการติดตั้ง conda ของฉันไม่อนุญาตให้ฉันใช้แหล่งที่มาในตอนเริ่มต้น


คุณไม่จำเป็นต้องsourceเริ่มต้นถ้าคุณใช้ Windows
KWx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.