Cài đặt Python3 pip3 bị hỏng trên Ubuntu


14

Tôi đã cài đặt python3 và pip3 thành công trên Ubuntu16.04, nhưng cài đặt pip3 bị hỏng. Làm thế nào tôi có thể khắc phục vấn đề này? Thông tin lỗi của pip3 installnhư sau:

# pip3 install xlwt
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Đầu ra của sudo -H pip3 install --upgrade pip

sudo -H pip3 install --upgrade pip  
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Đầu ra của which pip3pip3 --version:

# which pip3
/usr/bin/pip3

# pip3 --version
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
    from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

PS Python2 pip chạy thành công. Đầu ra của "which pip" và "pip --version":

# which pip
/usr/bin/pip

# pip --version
pip 1.5.4 from /usr/local/lib/python2.7/dist-packages/pip-1.5.4-py2.7.egg (python 2.7)

Và thông tin cài đặt python và python3:

# which python
/usr/bin/python
# which python3
/usr/bin/python3

# python -V
Python 2.7.14
# python3 -V
Python 3.6.3  

Bạn đã nói 16.04 trong bài viết của mình nhưng đã sử dụng thẻ 14.04. Phiên bản nào đúng?
edwinksl

1
16.04 là đúng. Tôi không thể tìm thấy thẻ 16.04 ngay bây giờ. Lấy làm tiếc.
mlpy

Câu trả lời:


12

Có điều gì đó không ổn với pip3 của bạn, vì vậy hãy gỡ bỏ nó và cài đặt lại. Mở terminal và gõ:

sudo apt purge python3-pip  
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip   
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
python3 -m pip install --user xlwt

3
Tôi đã thử nhưng vẫn cùng một lỗi: imgur.com/a/nAdqU .
mlpy

Tôi đã thử giải pháp mới nhưng vẫn bị lỗi tương tự.
mlpy

Tôi cũng có vấn đề tương tự. Khi tôi làm sudo apt install python3-pip, tôi nhận được lỗi sau:The following packages have unmet dependencies: python3-pip : Depends: python-pip-whl (= 8.1.1-2) but 8.1.1-2ubuntu0.4 is to be installed Recommends: build-essential but it is not going to be installed Recommends: python3-dev (>= 3.2) but it is not going to be installed Recommends: python3-wheel but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Kristada673

@ Kristada673 Hãy thử đọc câu trả lời cho câu hỏi này: askubfox.com/questions/363200/iêu . Câu trả lời của DragonLord đã làm việc cho tôi.
karel

6

Cài đặt gói python3-pip tạo tập lệnh python trong tệp / usr / bin / pip3. Để chạy, hàm main () cần được nhập từ mô-đun pip ( from pip import main). Đường dẫn phương thức này chỉ khả dụng cho phiên bản pip đóng gói (9.0.1 trong trường hợp của tôi).

Sau khi chạy pip3 install --upgrade pip, phiên bản pip trở thành 18.1 và main () đã được chuyển vào pip._internal.

Sử dụng lệnh python3 -m pip --versionđể xem trường hợp của bạn có tương tự với tình huống tương tự không (pip3 cũng có sẵn với phương thức này khi /usr/bin/pip3bị hỏng).

Nếu vậy, trong tệp / usr / bin / pip3, thay thế dòng 9: from pip import main bằng: from pip._internal import main

Vấn đề sẽ được khắc phục. (Đã thử nghiệm trên bản phân phối Ubuntu 18.04)


Sau khi tôi thay đổi nhập, một lỗi khác xuất hiệnFile "/usr/bin/pip3", line 11, in <module> sys.exit(main()) TypeError: 'module' object is not callable
Miranda

2

Đây là những gì tôi thấy hữu ích:

  1. sudo rm -rf /usr/local/lib/python3.5/dist-packages
  2. Không bao giờ chạy pip3trong sudo.

Trong khi điều đó có thể sửa chữa mọi thứ, bạn có thể vui lòng mở rộng câu trả lời của bạn? Tại sao phải xóa thư mục này (có thể thêm một cảnh báo về python3.5đường dẫn), tại sao không bao giờ chạy nó với sudo, v.v.
Robert Riedl

Tôi không hoàn toàn là một chuyên gia về điều này - tôi chỉ muốn chia sẻ những gì đã làm cho tôi.
Jan Lachnitt


1

Đầu tiên xóa pip3 bị hỏng:

rm /user/bin/pip3 /user/local/bin/pip3

Cài đặt lại cái mới:

sudo apt-get remove python3-pip
sudo apt-get install python3-pip

0

Có vấn đề tương tự, cài đặt openssl đã sửa nó cho tôi


Nhưng openssl đã cài đặt trên Ubuntu của tôi: imgur.com/a/60kIM . Có lẽ nó gây ra bởi một lý do khác.
mlpy

0

Như @Vincent H. đã đề cập, tôi gặp phải vấn đề tương tự.

TracBack (cuộc gọi gần đây nhất vừa qua): Tệp "/home/ashish/.local/bin/pip3", dòng 7, từ pip._iternal nhập chính NhậpError: Không có mô-đun nào có tên 'pip._iternal'

Việc sửa chữa cho vấn đề này là để thay thế pip._internalcho piptrong .local/bin/pip3bằng cách thực hiện sudo gedit .local/bin/pip3.


0

Đây là một vấn đề nhưng bạn có thể giải quyết.

rm /user/bin/pip3 /user/local/bin/pip
sudo apt-get remove python-pip

hơn là cài đặt lại

sudo apt-get install python-pip
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.