pip: không có mô-đun nào có tên _internal


98

Tôi gặp sự cố khi cố gắng sử dụng pip theo bất kỳ cách nào. Tôi đang sử dụng Ubuntu 16.04.4

Tôi nên nói rằng tôi đã sử dụng nó rồi và tôi chưa bao giờ gặp vấn đề gì, nhưng bắt đầu từ hôm nay khi tôi sử dụng bất kỳ lệnh nào, tôi luôn gặp lỗi tương tự (như một ví dụ sử dụng 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

Tôi đã thử làm sudo apt-get remove python-piptheo sudo apt-get install python-pipnhưng không có gì thay đổi.


Đảm bảo rằng điều đó /usr/local/lib/pythonX.X/site-packagesđứng trước /usr/lib/pythonX.X/site-packagestrong của bạn $PATH.
hoefling

Vấn đề tương tự ở đây. Bạn đã tìm thấy một giải pháp?
WayBehind

3
@WayBehind Tôi đã tìm thấy một giải pháp. Tôi nhận thấy rằng sử dụng python -m pipmọi thứ hoạt động tốt. Bên cạnh đó, tôi đã xóa tệp /usr/local/bin/pip, bây giờ đang gọi pip -Vreturn pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7). Mọi thứ dường như hoạt động như mong đợi.
Grimdrem

Tôi vẫn gặp vấn đề tương tự, tôi đang sử dụng pip trong môi trường conda, python 2.7 và tôi đang sử dụng pip install ipdb. Bất kỳ ý tưởng về điều này?
Garvita Tiwari

1
Đã làm theo các bước cộng với cờ -H:sudo -H python3.7 get-pip.py --force-reinstall
Andres Leon Rangel

Câu trả lời:


112

Điều này đã làm điều đó cho tôi:

python -m pip install --upgrade pip

Môi trường: OSX && Python được cài đặt qua brew


6
Cảm ơn bạn, đây là giải pháp cho tôi bằng cách sử dụng python3.
Furbeenator

2
điều này đã không làm việc cho tôi. những gì @Grimdrem đã làm là những gì tôi đã làm. Tôi đã (trước đây) đã cài đặt pip cho tất cả (sử dụng sudo hoặc thứ gì đó) ... và bản nâng cấp của tôi là với --user nên bản cài đặt khác vẫn bị treo ... xóa nó khỏi / usr / local / bin và khỏi thư mục gói của main python (không phải --user) đã thực hiện thủ thuật.
user1269942

Kỳ lạ là điều này cũng đã sửa nó ở đây. Tôi đã nâng cấp #searx lên cam kết mới nhất.
Roland

Chạy vào điều này trên Ubuntu trên WSL. Tôi cũng sử dụng pyenv, nhưng bằng cách nào đó đã bóp nghẹt hệ thống python vimsử dụng. Điều này đã đặt mọi thứ ở vị trí cần thiết. Và bây giờ taskwikihoạt động trở lại. Chà!
Daniel Black

Cảm ơn, điều này phù hợp với tôi, tôi đang sử dụng python 3.8
Onaapo

62

Câu trả lời từ askUbuntu hoạt động.

Đối với pip2.7, bạn có thể lúc đầu curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py, sau đó python2.7 get-pip.py --force-reinstallcài đặt lại pip.

Vấn đề đã được giải quyết. Cũng hoạt động cho python3.


6
Điều này không hiệu quả với tôi, tôi đã thử điều này một vài lần
Cleve Green

1
Tôi đã sửa nó bằng cách cài đặt lại python, đây là một nỗi đau tuyệt đối khi tôi không có mô-đun nào trước đây của mình
Cleve Green

Chỉ bị vấn đề này, có vẻ như có một chút cụm apt-get install python-pipkhông hoạt động trên 16.04.4 và bạn phải dùng đến trình cài đặt nhị phân blob?
Joe

1
để làm cho nó hoạt động, tôi đã phải xóa tất cả những thứ bên hệ thống của mình :apt-get remove python-pip-whl
Ngày

"Quyền bị từ chối". Bạn có thể cần sử dụng sudo. Hầu hết các bản phân phối không cho phép người dùng vani cài đặt hệ thống pip trên diện rộng.
Cerin

21

Giải pháp này phù hợp với tôi:

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

hoặc sử dụng sudo cho các quyền nâng cao ( sudo python3 get-pip.py --force-reinstall).

Tất nhiên, bạn cũng có thể sử dụng pythonthay vì python3;)

Nguồn


19

Tham khảo danh sách vấn đề này

sudo easy_install pip

hoạt động cho tôi trong Mac OS

Đối với python3, có thể thử sudo easy_install-3.x pipphụ thuộc vào phiên bản python 3.x. Hoặc làpython3 -m pip install --user --upgrade pip


1
Đó là Python2 cũ. Trên Python3 Ubuntu ít nhất bạn cũng nên chạy sudo easy_install-3.4 piphoặc tương tự.
NoBugs

11

Trong tệp "/ usr / local / bin / pip" thay đổi from pip._internal import main thànhfrom pip import main


9

Sự cố này có thể do người dùng thông thường không có đặc quyền truy cập tệp py gói.
1. người dùng root có thể chạy 'danh sách pip'
2. người dùng thông thường khác không thể chạy 'danh sách pip'

[~]$ 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

Kiểm tra đặc quyền tệp pip py.

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

giải pháp: đăng nhập người dùng root và chạy

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

khắc phục sự cố này.


Cuối cùng là một lời giải thích hợp lý về vấn đề thực sự là gì. Cài đặt lại có thể giải quyết được vấn đề nhưng đó là lý do thực sự khiến nó không hoạt động ngay từ đầu.
Maxime Viargues

6

Để hoàn thiện, tôi vừa gặp sự cố này với "Ubuntu mới nhất" ... v18.04 ... và đã khắc phục nó theo cách này:

python3 -m pip install --upgrade pip

(Lưu ý rằng cần phải chỉ định python3vì lệnh này tham chiếu đến Python 3.6.9. pythonLệnh trên cùng một hệ thống tham chiếu đến Python 2.7.17. Vì đây rõ ràng là một cài đặt toàn hệ thống nên nó gặp phải quyền ["not sudo" ...] nhưng không thành vấn đề vì dù sao thì đó cũng là điều sai. Tôi đang gặp sự cố với pip3.)


Tôi gặp lỗi no such option: --upradetrong lệnh của bạn - vì vậy tôi đã chạy python3 -m pip install pipvà nó hoạt động :)
Xerus

5

Tôi đã gặp sự cố này khi PYTHONPATHđược thiết lập để bao gồm thư mục tích hợp sẵn site-packages. Vì Python tự động nhìn ở đó nên nó không cần thiết và có thể bị xóa.


2
Điều này đã giải quyết nó cho tôi, cảm ơn. Tôi chỉ đơn giản là đã tiết kiệm $ PYTHONPATH ở đâu đó, sau đó chạy export PYTHONPATH=""để pip hoạt động.
ibowman

nhưng khi thử echo $ PYTHONPATH, gói trang không được bao gồm.
alyssaeliyah

Tôi đã gặp phải điều này khi xây dựng một môi trường ảo trên một hệ thống sử dụng các mô-đun để quản lý các gói phần mềm. Khi tôi tải, bạn nói "tải mô-đun python / 3.5.2" và nó bổ sung cho bạn PYTHONPATH. Sau đó, khi tôi kích hoạt env ảo của mình, nó không bao giờ bỏ đặt PYTHONPATH của tôi, điều đó có nghĩa là nó đã tìm thấy cấp hệ thống pipchứ không phải cấp trong virtualenv của tôi.
cáu

4

Tôi vừa gặp phải vấn đề tương tự và trong trường hợp của tôi, hóa ra đây là xung đột giữa cài đặt python trong virtualenv của tôi và python trên toàn trang web (Ubuntu). Điều giải quyết được vấn đề đối với tôi là chạy pip theo cách này, để buộc sử dụng cài đặt python chính xác (trong vortualenv của tôi):

python3 -m pip install PACKAGE

thay vì

pip3 install PACKAGE

Tôi nhận ra điều này khi tôi cố gắng làm theo một số câu trả lời ở đây đề xuất cài đặt lại pip và kết quả đầu ra lỗi mà tôi nhận được đã trỏ đến đường dẫn thư viện python trên toàn trang hiện có mặc dù tôi đã kích hoạt virtualenv của mình. Đáng thử trước khi xóa và cài đặt lại nội dung.


Như đã đề cập trong câu trả lời này stackoverflow.com/a/50737296/1340995, đó là vấn đề về quyền. Tôi thấy rằng việc sử dụng pip với cũng python3 -m pipgiải quyết được vấn đề này, có thể là do pythoncó quyền thực thi và nó không cần pip có quyền + x vì nó chỉ tải tệp và không thực thi nó.
Maxime Viargues

3

Bạn đang sử dụng python2 hay python3? Lệnh sau có thể khác!

  1. sử dụng python3 -m pip --versionđể xem bạn đã cài đặt pip chưa.
  2. nếu có, hãy chạy python3 -m pip install --upgrade pip.
  3. nếu không, hãy chạy sudo apt-get install python3-pipvà làm lại.

3

Nó có thể là do xung đột phiên bản, hãy thử chạy nó, bằng cách nào đó nó sẽ loại bỏ pip cũ hơn.

sudo apt remove python pip

Đối với những gì nó có giá trị, xuất hiện này là giải pháp cho một Debian như distro ( ví dụ , Ubuntu 16,04), nơi các python-pipgói đã được cài đặt ở cấp distro, và get-pip.pyđã được sử dụng cho một phiên bản sử dụng cụ thể của pipđó cũng là trong $PATH. Tôi sudo apt-get removed các python-pipgói (2.7) và sử dụng một trong tôi ~ / .local / bin để thay thế. Không có thông báo lỗi nữa.
TheDudeAbides


2

Tôi đã sửa lỗi này bằng cách chạy các lệnh sau:

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

Nó sẽ gỡ bỏ pip đã cài đặt trước đó và cài đặt lại. Cảm ơn :)


1

Giải pháp sau đã giải quyết được sự cố trên máy tính của tôi cho python2.7 "$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py" và sau đó là "$ sudo python2.7 get-pip .py --force-reinstall "


1
Cái này phù hợp với tôi nhưng bạn phải thay đổi nó thành phiên bản python bạn đang sử dụng. sudo python3 get-pip.py --force-reinstall. Tuyệt quá.
alyssaeliyah

1

Chỉ dành cho người dùng hiện tại:

easy_install --user pip

hoặc là

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

Thứ hai có thể cung cấp cho /usr/bin/python: No module named pip Ngay cả khi which piptìm thấy mô-đun có tên là pip. Trong trường hợp này, hãy thửeasy_install


1

Tôi đã gặp lỗi tương tự trên Windows khi cố gắng cài đặt gói qua 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'

Python của tôi được cài đặt qua Anaconda. Tôi đã giải quyết vấn đề này bằng cách cài đặt lại pip qua conda:

conda install pip

Sau đó, pip trở lại bình thường.


0

Không có gì hiệu quả với tôi, nhưng chỉ có một điều: tôi đã sử dụng sudo trước lệnh và nó đang hoạt động tốt.


Trường hợp của tôi kỳ lạ hơn vì "sudo" vẫn cho tôi cùng một lỗi. Tôi đã phải chuyển sang root (sudo su trên ubuntu) để có thể thực hiện danh sách pip3.5 và cài đặt pip3.5: |
jmng

0

Tôi gặp vấn đề tương tự trên môi trường ảo của mình sau khi nâng cấp cài đặt python từ 3.6 lên 3.7 nhưng chỉ trên vent global pip hoạt động tốt, để giải quyết vấn đề này, tôi hủy kích hoạt và xóa môi trường ảo của mình sau khi tạo lại và bây giờ ổn, trên venv:

deactivate
rm -rvf venv 

và sau khi tạo lại môi trường ảo. Tôi sử dụng mac OS 10.11 và python 3


0

(Trên windows) không chắc tại sao điều này lại xảy ra nhưng tôi đã thiết lập PYTHONPATH để trỏ đến c: \ python27 nơi python đã được cài đặt. kết hợp với virtualenv, điều này đã tạo ra lỗi đã đề cập.

giải quyết bằng cách xóa tất cả var env PYTHONPATH cùng nhau


0

giải pháp của tôi: bước đầu tiên giống như hầu hết các câu trả lời khác:

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

thứ hai, thêm liên kết mềm

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


0

Bạn có thể gỡ bỏ nó trước, và cài đặt lại, nó sẽ ổn. cho centos:

yum remove python-pip
yum install python-pip

0

Tôi đã khắc phục sự cố này bằng cách

sudo apt-get install python3-pip

điều này hoạt động ngay cả đối với python2.7, tuyệt vời ...


0

Giải pháp của tôi là thêm import pipvào tập lệnh được liên kết với các pip/pip3lệnh.

Đầu tiên, mở tệp (ví dụ /usr/local/bin/pip) bằng trình soạn thảo văn bản yêu thích của bạn và chế độ sudo. Ví dụ, tôi sử dụng sudo vim /usr/local/bin/pipđể mở tệp script.

Bạn sẽ nhận được một số tệp như sau:

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())

Sau đó, hãy chèn câu lệnh import pipngay trước khi from pip._internal import mainvấn đề được giải quyết.


0

Những điều này thường xuất phát từ việc sử dụng pip để "cập nhật" hệ thống đã cài đặt pip và / hoặc có nhiều lần cài đặt pip dưới quyền người dùng. Giải pháp của tôi là xóa nhiều pips được cài đặt dưới quyền người dùng, cài đặt lại pip repo, sau đó "pip install --user pip" như trên.

Xem: https://github.com/pypa/pip/issues/5599 để có cuộc thảo luận chính thức hoàn chỉnh và các bản sửa lỗi cho sự cố.


0

Tôi đã thử lệnh sau để giải quyết vấn đề và nó hoạt động với tôi:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
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.