pip: ไม่มีโมดูลชื่อ _internal


100

ฉันมีปัญหาเมื่อพยายามใช้ pip ไม่ว่าด้วยวิธีใดก็ตาม ฉันใช้ Ubuntu 16.04.4

ฉันควรจะบอกว่าฉันใช้มันไปแล้วและฉันไม่เคยมีปัญหาใด ๆ แต่เริ่มตั้งแต่วันนี้เมื่อฉันใช้คำสั่งใด ๆ ฉันมักจะได้รับข้อผิดพลาดเดียวกันเสมอ (ดังตัวอย่างการใช้pip --upgrade)

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

ฉันได้ลองทำsudo apt-get remove python-pipตามsudo apt-get install python-pipแต่ไม่มีอะไรเปลี่ยนแปลง


ตรวจสอบให้แน่ใจว่าอยู่ข้าง/usr/local/lib/pythonX.X/site-packagesหน้า/usr/lib/pythonX.X/site-packagesใน$PATHไฟล์.
hoefling

ปัญหาเดียวกันที่นี่ คุณพบวิธีแก้ปัญหาหรือไม่?
WayBehind

3
@WayBehind ฉันพบวิธีแก้ปัญหา ฉันสังเกตว่าการใช้python -m pipทุกอย่างทำงานได้ดี นอกจากนั้นฉันออกไฟล์/usr/local/bin/pipตอนนี้เรียกกลับมาpip -V pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)ทุกอย่างดูเหมือนจะดำเนินไปตามที่คาดไว้
Grimdrem

ฉันยังคงมีปัญหาเดิมฉันใช้ pip ในสภาพแวดล้อม conda, python 2.7 และฉันใช้ pip install ipdb มีความคิดเกี่ยวกับเรื่องนี้ไหม
Garvita Tiwari

1
ทำตามขั้นตอนบวกธง -H:sudo -H python3.7 get-pip.py --force-reinstall
Andres Leon Rangel

คำตอบ:


118

สิ่งนี้ทำเพื่อฉัน:

python -m pip install --upgrade pip

สภาพแวดล้อม: OSX && Python ติดตั้งผ่านการชง


6
ขอบคุณนี่เป็นวิธีแก้ปัญหาสำหรับฉันโดยใช้ python3
Furbeenator

2
สิ่งนี้ไม่ได้ผลสำหรับฉัน สิ่งที่ @Grimdrem ทำคือสิ่งที่ฉันทำลงไป ฉัน (ในอดีต) ติดตั้ง pip สำหรับทุกคน (ใช้ sudo หรือบางอย่าง) ... และการอัปเกรดของฉันใช้ - ผู้ใช้ดังนั้นการติดตั้งอื่น ๆ ยังคงค้างอยู่ ... ลบออกจาก / usr / local / bin และจากของฉัน โฟลเดอร์แพ็คเกจหลักของ python (ไม่ใช่ - ผู้ใช้) ทำเคล็ดลับ
user1269942

สิ่งนี้ได้รับการแก้ไขอย่างแปลกประหลาดเช่นกัน ฉันต้องอัปเกรด #searx เป็นคอมมิตล่าสุด
Roland

พบสิ่งนี้บน Ubuntu บน WSL ฉันยังใช้pyenvแต่ก็ปิดไพ ธ อนระบบที่vimใช้. สิ่งนี้ทำให้สิ่งที่พวกเขาต้องอยู่และตอนนี้ใช้taskwikiงานได้อีกครั้ง ต๊าย!
Daniel Black

ขอบคุณสิ่งนี้ใช้ได้กับฉันฉันใช้ python 3.8
Onaapo

65

คำตอบจากaskUbuntu ใช้งานได้

สำหรับ pip2.7 คุณสามารถในตอนแรกcurl https://bootstrap.pypa.io/get-pip.py -o get-pip.pyแล้วpython2.7 get-pip.py --force-reinstallติดตั้ง pip

แก้ไขปัญหา. ใช้ได้กับ python3


6
สิ่งนี้ไม่ได้ผลสำหรับฉันฉันได้ลองสองสามครั้งแล้ว
Cleve Green

1
ฉันได้แก้ไขแล้วโดยการติดตั้ง python ใหม่ซึ่งเป็นความเจ็บปวดอย่างยิ่งที่ตอนนี้ฉันไม่มีโมดูลที่ผ่านมาของฉันเลย
Cleve Green

ปัญหานี้ถูกกัดเพียงเล็กน้อยดูเหมือนว่าจะเป็นกลุ่มที่apt-get install python-pipไม่ทำงานบน 16.04.4 และคุณจะหันไปใช้ตัวติดตั้ง binary blob หรือไม่?
โจ

1
เพื่อให้การทำงานผมต้องเอาของฉันทั้งหมดด้านระบบสิ่ง pip:apt-get remove python-pip-whl
ม.ค.

"ปฏิเสธการอนุญาต" คุณอาจต้องใช้ sudo Distros ส่วนใหญ่ไม่อนุญาตให้ผู้ใช้วานิลลาติดตั้งระบบ pip แบบกว้าง ๆ
Cerin

21

วิธีนี้ใช้ได้กับฉัน:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall

หรือใช้sudoเพื่อยกระดับสิทธิ์ ( sudo python3 get-pip.py --force-reinstall)

แน่นอนคุณสามารถใช้pythonแทนpython3;)

ที่มา


20

อ้างถึงรายการปัญหานี้

sudo easy_install pip

ใช้ได้กับฉันภายใต้ Mac OS

สำหรับpython3อาจลองsudo easy_install-3.x pipขึ้นอยู่กับเวอร์ชัน python 3.x หรือpython3 -m pip install --user --upgrade pip


1
นั่นคือ Python2 ตัวเก่า ใน Python3 Ubuntu อย่างน้อยคุณควรเรียกใช้sudo easy_install-3.4 pipหรือคล้ายกัน
NoBugs

สิ่งนี้แก้ไขปัญหาให้ฉันเมื่อฉันต้องอัปเกรด pip 20.2.3 เป็น pip 21.0 บน MacOS ขอบคุณ!
Alex L


10

ปัญหานี้อาจเกิดจากผู้ใช้ทั่วไปไม่มีสิทธิ์ในการเข้าถึงไฟล์ py ของแพ็คเกจ
1. ผู้ใช้ root สามารถเรียกใช้ 'pip list' ได้
2. ผู้ใช้ทั่วไปรายอื่นไม่สามารถเรียกใช้ 'pip list'

[~]$ pip list
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named pip._internal

ตรวจสอบสิทธิ์ไฟล์ pip py

[root@]# ll /usr/lib/python2.7/site-packages/pip/  
合計 24  
-rw-------  1 root root   24  67 16:57 __init__.py  
-rw-------  1 root root  163  67 16:57 __init__.pyc  
-rw-------  1 root root  629  67 16:57 __main__.py  
-rw-------  1 root root  510  67 16:57 __main__.pyc  
drwx------  8 root root 4096  67 16:57 _internal  
drwx------ 18 root root 4096  67 16:57 _vendor  

วิธีแก้ปัญหา: ล็อกอินผู้ใช้รูทและรัน

chmod -R 755 /usr/lib/python2.7 

แก้ไขปัญหานี้


ในที่สุดคำอธิบายเชิงตรรกะของปัญหาที่แท้จริงคืออะไร การติดตั้งใหม่อาจช่วยแก้ปัญหาได้ แต่นั่นเป็นสาเหตุที่แท้จริงที่ทำให้ไม่สามารถใช้งานได้ตั้งแต่แรก
Maxime Viargues

7

เพื่อความสมบูรณ์ฉันเพิ่งพบปัญหานี้กับ "Ubuntu ล่าสุด" ... v18.04 ... และแก้ไขด้วยวิธีนี้:

python3 -m pip install --upgrade pip

(โปรดสังเกตว่าจำเป็นต้องระบุpython3เนื่องจากสิ่งนี้อ้างอิง Python 3.6.9 pythonคำสั่งในระบบเดียวกันอ้างถึง Python 2.7.17 เนื่องจากเห็นได้ชัดว่าเป็นการติดตั้งทั้งระบบจึงพบการอนุญาต ["not sudo" ... ] ข้อผิดพลาด แต่มันไม่สำคัญเพราะมันเป็นสิ่งที่ผิดที่จะทำต่อไปฉันกำลังพบปัญหากับpip3)


ฉันได้รับข้อผิดพลาดno such option: --upradeในคำสั่งของคุณ - ดังนั้นฉันจึงวิ่งpython3 -m pip install pipและใช้งานได้ :)
Xerus

5

ฉันเคยเห็นปัญหานี้เมื่อPYTHONPATHถูกตั้งค่าให้รวมsite-packagesไดเร็กทอรีในตัว เนื่องจาก Python ดูโดยอัตโนมัติจึงไม่จำเป็นและสามารถลบออกได้


2
สิ่งนี้แก้ไขให้ฉันได้ขอบคุณ ฉันเพิ่งบันทึก $ PYTHONPATH ไว้ที่ไหนสักแห่งจากนั้นก็วิ่งexport PYTHONPATH=""เพื่อให้ pip ทำงาน
ibowman

แต่เมื่อลอง echo $ PYTHONPATH ไม่รวมแพ็คเกจไซต์
alyssaeliyah

ฉันพบสิ่งนี้เมื่อสร้างสภาพแวดล้อมเสมือนบนระบบที่ใช้โมดูลเพื่อจัดการแพ็คเกจซอฟต์แวร์ เมื่อฉันโหลดคุณจะพูดว่า "module load python / 3.5.2" และมันนำหน้าไฟล์PYTHONPATH. จากนั้นเมื่อฉันเปิดใช้งาน env เสมือนของฉันมันจะไม่ยกเลิกการตั้งค่า PYTHONPATH ของฉันซึ่งหมายความว่ามันพบระดับของระบบpipไม่ใช่ระดับหนึ่งใน Virtualenv ของฉัน
irritable_phd_synd จาก

4

ฉันเพิ่งพบปัญหาเดียวกันและในกรณีของฉันปรากฎว่านี่เป็นข้อขัดแย้งระหว่างการติดตั้ง python ใน Virtualenv และ python ทั่วทั้งไซต์ (Ubuntu) สิ่งที่แก้ได้สำหรับฉันคือการเรียกใช้ pip ด้วยวิธีนี้เพื่อบังคับใช้การติดตั้ง python ที่ถูกต้อง (ใน vortualenv ของฉัน):

python3 -m pip install PACKAGE

แทน

pip3 install PACKAGE

ฉันตระหนักถึงสิ่งนี้เมื่อฉันพยายามทำตามคำตอบบางส่วนที่แนะนำให้ติดตั้ง pip ใหม่และผลลัพธ์ข้อผิดพลาดที่ฉันได้รับนั้นชี้ไปที่พา ธ ไลบรารี python ที่มีอยู่ทั่วทั้งไซต์แม้ว่าฉันจะเปิดใช้งาน Virtualenv แล้วก็ตาม ควรลองก่อนที่จะลบและติดตั้งสิ่งต่างๆใหม่


ดังที่ได้กล่าวไว้ในคำตอบนี้stackoverflow.com/a/50737296/1340995มันเป็นปัญหาการอนุญาต ฉันพบว่าการใช้ pip ร่วมกับpython3 -m pipช่วยแก้ปัญหานี้ได้เช่นกันอาจเป็นเพราะpythonมีสิทธิ์ในการดำเนินการและไม่จำเป็นต้องมี pip ที่มีสิทธิ์ + x เนื่องจากเป็นเพียงการโหลดไฟล์และไม่ได้ดำเนินการ
Maxime Viargues

3

คุณใช้ python2 หรือ python3? คำสั่งต่อไปนี้อาจแตกต่างกัน!

  1. ใช้ python3 -m pip --versionเพื่อดูว่าคุณได้ติดตั้ง pip หรือไม่
  2. ถ้าใช่ให้เรียกใช้ python3 -m pip install --upgrade pipถ้าใช่วิ่ง
  3. ถ้าไม่มีให้เรียกใช้sudo apt-get install python3-pipและทำอีกครั้ง

3

อาจเกิดจากความขัดแย้งของเวอร์ชันลองเรียกใช้สิ่งนี้จะลบ pip ที่เก่ากว่าออกไป

sudo apt remove python pip

สำหรับสิ่งที่คุ้มค่าสิ่งนี้ดูเหมือนจะเป็นโซลูชันสำหรับ distro แบบ Debian ( เช่น Ubuntu 16.04) ที่python-pipติดตั้งแพ็คเกจที่ระดับ distro และget-pip.pyถูกใช้สำหรับเวอร์ชันเฉพาะผู้ใช้pipซึ่งอยู่ในไฟล์$PATH. ฉันsudo apt-get removeใช้python-pipแพ็คเกจ (2.7) และใช้แพ็คเกจใน ~ / .local / bin ของฉันแทน ไม่มีข้อความแสดงข้อผิดพลาดเพิ่มเติม
TheDudeAbides


2

ฉันได้แก้ไขข้อผิดพลาดนี้โดยเรียกใช้คำสั่งต่อไปนี้:

sudo apt remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

มันจะลบ pip ที่ติดตั้งไว้ก่อนหน้านี้และติดตั้งใหม่ ขอบคุณ :)


1

วิธีแก้ปัญหาต่อไปนี้แก้ปัญหาในเครื่องของฉันสำหรับ python2.7 "$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py" และ "$ sudo python2.7 get-pip .py - บังคับติดตั้งใหม่ "


1
อันนี้ใช้ได้สำหรับฉัน แต่คุณต้องเปลี่ยนเป็นเวอร์ชัน python ที่คุณใช้ sudo python3 get-pip.py - บังคับติดตั้งใหม่ เยี่ยมมาก
alyssaeliyah

1

สำหรับผู้ใช้ปัจจุบันเท่านั้น:

easy_install --user pip

หรือ

python -m pip install --upgrade --user pip

อย่างที่สองอาจให้/usr/bin/python: No module named pip แม้ว่าจะwhich pipพบโมดูลชื่อ pip ในกรณีนี้ให้ลองใช้ไฟล์easy_install


1

ฉันพบข้อผิดพลาดเดียวกันบน Windows เมื่อฉันพยายามติดตั้งแพ็คเกจผ่าน pip3:

Traceback (most recent call last):
  File "d:\anaconda\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\anaconda\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Anaconda\Scripts\pip3.6.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip._internal'

งูหลามของฉันติดตั้งผ่าน Anaconda ฉันแก้ไขปัญหานี้โดยการติดตั้ง pip ใหม่ผ่าน conda:

conda install pip

หลังจากนั้น pip จะกลับสู่สภาวะปกติ


0

ไม่มีอะไรได้ผลสำหรับฉัน แต่มีเพียงสิ่งเดียว: ฉันใช้ sudo หน้าคำสั่งและมันก็ใช้งานได้ดี


กรณีของฉันแปลกกว่าเพราะ "sudo" ยังคงให้ข้อผิดพลาดเดียวกันกับฉัน ฉันต้องเปลี่ยนไปใช้ root (sudo su บน ubuntu) เพื่อให้สามารถทำรายการ pip3.5 และติดตั้ง pip3.5 ได้: |
jmng

0

ฉันมีปัญหาเดียวกันกับสภาพแวดล้อมเสมือนของฉันหลังจากอัปเกรดการติดตั้ง python จาก 3.6 เป็น 3.7 แต่เฉพาะ pip ​​ทั่วโลกเท่านั้นที่ทำงานได้ดีในการแก้ปัญหาฉันปิดใช้งานและลบสภาพแวดล้อมเสมือนของฉันหลังจากสร้างใหม่อีกครั้งและตอนนี้ก็ใช้ได้แล้วบน venv:

deactivate
rm -rvf venv 

และหลังจากสร้างสภาพแวดล้อมเสมือนใหม่ ฉันใช้ mac OS 10.11 และ python 3


0

(บน windows) ไม่แน่ใจว่าเหตุใดจึงเกิดขึ้น แต่ฉันตั้งค่า PYTHONPATH ให้ชี้ไปที่ c: \ python27 ที่ติดตั้ง python เมื่อรวมกับ Virtualenv สิ่งนี้ทำให้เกิดข้อผิดพลาดดังกล่าว

แก้ไขได้โดยการลบ PYTHONPATH env var ทั้งหมดเข้าด้วยกัน


0

วิธีแก้ปัญหาของฉัน: ขั้นตอนแรกเหมือนกับคำตอบอื่น ๆ ส่วนใหญ่:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2.7 get-pip.py --force-reinstall

ประการที่สองเพิ่มซอฟต์ลิงค์

sudo ln -s /usr/local/bin/pip /usr/bin/pip




0

โซลูชันของฉันกำลังเพิ่มimport pipสคริปต์ที่เชื่อมโยงกับpip/pip3คำสั่ง

ประการแรกเปิดไฟล์ (เช่น/usr/local/bin/pip) ด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบและโหมด sudo ตัวอย่างเช่นฉันใช้sudo vim /usr/local/bin/pipเพื่อเปิดไฟล์สคริปต์

คุณจะได้รับไฟล์ดังต่อไปนี้:

import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

หลังจากนั้นให้ใส่ข้อความimport pipก่อนfrom pip._internal import mainที่ปัญหาจะได้รับการแก้ไข


0

สิ่งเหล่านี้มักมาจากการใช้ pip เพื่อ "อัปเดต" pip ที่ติดตั้งระบบและ / หรือมีการติดตั้ง pip หลายรายการภายใต้ผู้ใช้ วิธีแก้ปัญหาของฉันคือทำความสะอาด pip ที่ติดตั้งหลายรายการภายใต้ผู้ใช้ติดตั้ง pip repo ใหม่จากนั้น "pip install --user pip" ตามด้านบน

ดู: https://github.com/pypa/pip/issues/5599สำหรับการอภิปรายและการแก้ไขปัญหาอย่างเป็นทางการ


-1

ฉันลองใช้คำสั่งต่อไปนี้เพื่อแก้ปัญหาและใช้ได้ผลสำหรับฉัน:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.