Pip ไม่ทำงาน: ImportError: ไม่มีโมดูลชื่อ 'pip._internal'


62

วิ่งpipหรือpip3ผลลัพธ์ด้วย:

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

ฉันมีปัญหากับเรื่องนี้และถอนการติดตั้ง pip3 แต่เมื่อฉันพยายามติดตั้งอีกครั้งโดยใช้

sudo apt-get -y install python3-pip

มันจะติดตั้ง แต่จากนั้นใช้ pip หรือ pip3 ฉันได้รับข้อผิดพลาดเดียวกัน

#which pip3
/home/myuser/.local/bin/pip3

2
ฉันมีปัญหาที่คล้ายกันหลังจากอัปเกรดจาก pip 9.0.2 เป็น pip-10.0.0 อูบุนตู 16.04LTS ที่นี่
เดฟ

2
คุณไม่ควรอัปเกรดเป็น pip 10 บน Ubuntu เพราะเวอร์ชั่นของระบบที่ติดตั้งผ่าน apt ได้รับการแก้ไขในแบบที่ไม่เข้ากันได้กับ pip 10 ดูgithub.com/pypa/pip/issues/5221 @Dave
ผู้บัญชาการ Byte

macOS 10.13.4 ปัญหาเดียวกันหลังจากอัปเกรดเป็น pip 10
Benjamin R

1
วิธีแก้ปัญหาชั่วคราว:python3 -m pip install --user <package>
Benjamin R

1
ถ้าคุณมีeasy_install(มาจากpython-setuptoolsแพคเกจ), คุณสามารถทำsudo easy_install pip(หรือsudo easy_install3 pipสำหรับ python3 เท่านั้น ฯลฯ )
มาเร็ค Sebera

คำตอบ:


115

หลังจากอัปเกรดpip(หรือpip3ในกรณีนี้) หากเกิดสิ่งต่อไปนี้:

$ ~ pip3 -V
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ModuleNotFoundError: No module named 'pip._internal'

บังคับให้ติดตั้ง pip ใหม่:

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

ยืนยันการติดตั้ง:

$ ~ pip3 -V
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

ตอนนี้pip3 install <package>และpip3 install --user <package>(สำหรับการติดตั้งระดับผู้ใช้) จะทำงานได้อย่างถูกต้อง

ไม่ควรมีเหตุผลใด ๆ ก็ตามที่คุณจำเป็นต้องเรียกใช้ pip ในโหมดยกระดับ

(หมายเหตุ: สำหรับ Python 2.7 เพียงแทนที่pythonสำหรับpython3และpipสำหรับpip3)

มีปัญหาเดียวกันกับ macOS เช่นกันมันเป็นปัญหาที่พบได้ทั่วไปในทุกแพลตฟอร์ม


1
ทำงานได้ดีสำหรับราสเบอร์รี่เช่นกัน
gtatr

1
คุณครับเป็นฮีโร่ มีปัญหานี้กับโซลัสและทำงานได้อย่างมีเสน่ห์
cirrusio

1
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/bin/pip3'
endolith

1
@endolith เอาล่ะตอนนี้คุณต้องการใช้sudo rm -rf /usr/bin/pip3- ล้างไดเรกทอรีที่มีอยู่ก่อนจากนั้นติดตั้งจากศูนย์ เป็นปัญหาสิทธิ์ในไดเรกทอรีนั้น แต่ควรรีเซ็ตในสถานการณ์เหล่านี้ฉันเชื่อว่าคุณสามารถติดตั้งแพคเกจที่คุณสูญเสียอีกครั้งได้อย่างง่ายดาย หากวิธีนี้ไม่ได้ผลให้ติดตั้ง Python 3 ของคุณด้วยเช่นกันจากนั้นรีบูตเครื่อง
Benjamin R

1
@endolith สวัสดีมันขึ้นอยู่กับระบบปฏิบัติการของคุณ (และ distro ถ้า Linux) แจ้งให้เราทราบและฉันจะพยายามชี้คุณในทิศทางที่ถูกต้อง PS เราได้รับทั้งหมดในตำแหน่งของคุณครั้งกว่าส่วนใหญ่ของเราชอบที่จะยอมรับ :)
เบนจามิน R

13

คำสั่งนี้ใช้งานได้มันติดตั้งใหม่pip:

sudo easy_install pip


3
นั่นเป็นคำตอบที่ง่ายที่สุด !
Serge Stroobandt

3
ทำงานเหมือนสงสัยใน Ubuntu
2849789

10

ฉันแก้ไขมันโดยการอัพเดท pip ผ่าน Python เช่นนี้

python2 -m pip install --user --upgrade pip

python3 -m pip install --user --upgrade pip


1
เรียบง่ายและอ่อนหวาน
lasec0203

2

ฉันพบปัญหาเช่นเดียวกับคุณในตอนนี้ฉันพบว่าสาเหตุที่คุณทำงานโดยไม่มีสิทธิ์ superuser ตั้งแต่แพ็กเกจหลามภายในบางโมดูลหรือโมดูลที่ติดตั้งภายใต้สิทธิ์ superuser

ดังนั้นคุณสามารถลองโดยการใส่กำปั้นsudo suจากนั้นใส่รหัสผ่านของคุณและเรียกใช้pip installมันอาจช่วยได้


3
คุณไม่ควรต้องเรียกใช้pipด้วยสิทธิ์ระดับสูง ใช้การ--userตั้งค่าสถานะแทนเช่นเดียวกับใน:pip3 install --user <package>
เบนจามิน R

1
อย่างไรก็ตามเมื่อฉันรันโดยไม่ได้รับอนุญาต superuser ฉันยังคงได้รับข้อมูลอย่าง Traceback (การโทรล่าสุดครั้งล่าสุด): ไฟล์ "/ usr / local / bin / pip3", บรรทัด 7, ใน <module> \\ จาก pip._internal main main ImportError: ไม่มีโมดูลชื่อ 'pip._internal' คุณช่วยฉันคิดดูว่าทำไมสิ่งนี้ถึงเกิดขึ้นได้เสมอ pip3 install --user
Yuke

2
ตกลงฉันพบว่าทำไมหากมีfrom pip._internal import mainข้อผิดพลาดเกิดขึ้นในโซลูชันของฉัน 1) curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py2) python3 get-pip.py --user --force-reinstallจากนั้นคุณสามารถเรียกใช้pipโดยไม่ได้รับอนุญาต superuser ขอบคุณมากสำหรับคำแนะนำของคุณมันช่วยได้มาก!
Yuke

ด้วยความยินดี! ดูผมได้เรียนรู้วิธีที่ยากจะต้องระมัดระวังเกี่ยวกับการใช้sudoจำใจ (OS ทำลายหลายครั้งฉัน!)
เบนจามิน R


2

ใช้สามขั้นตอนเหล่านี้:

  1. ไปที่/usr/local/binอาคารผู้โดยสาร
  2. ปฏิบัติ sudo gedit pip
  3. เปลี่ยนเข้าไปfrom pip._internal import mainfrom pip import main

1

ตรวจสอบว่ามีการติดตั้ง pip แล้วโดยใช้

pip3 -V 

หรือ

pip3 --version

หากไม่ใช้คำสั่งนี้เพื่อติดตั้ง:

sudo apt install python3-pip

ตอนนี้คุณสามารถใช้

python3 -m pip install packageName

เพื่อติดตั้งแพ็คเกจโดยใช้ pip


นี่คือสิ่งที่ OP เป็นดงแล้ว
Nik O'Lai

0

เวอร์ชั่น pip ตอนนี้คือ 19.0.1:

which pip3
#/home/xxx/.local/bin/pip3
vim /home/xxx/.local/bin/pip3

เปลี่ยนfrom pip._internal import mainเป็นfrom pip import main

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