python2.7 bị hỏng do lỗi nhập yếu, xin vui lòng giúp đỡ!


27

Tôi vừa cập nhật từ 16.04 đến 17.10 và mỗi lần tôi cố chạy bất kỳ lệnh python2.7 nào, tôi đều gặp lỗi này:

pip install --upgrade pip
Traceback (most recent call last):
File "/home/XXXX/bin/pip", line 7, in <module>
    from pip import main
  File "/home/XXXX/local/lib/python2.7/site-packages/pip/__init__.py", 
line 5, in <module>
    import logging
  File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, 
collections
  File "/home/XXXX/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref

Một người dùng khác có vấn đề tương tự, nhưng điều này ảnh hưởng đến bất kỳ chương trình python nào tôi cố gắng thực hiện. Tôi không thể cài đặt bất cứ thứ gì qua pip hoặc sử dụng bất kỳ tập lệnh python nào. Tôi thực sự không biết phải làm gì, sự giúp đỡ sẽ được đánh giá rất cao.

Đầu ra của "python --version" là

Python 2.7.12

tuy nhiên "cập nhật python" tạo ra:

python is already the newest version (2.7.14-2ubuntu1).

Tôi cập nhật từ 17.04 đến 17.10 và đối mặt tương tự ImportError: cannot import name _remove_dead_weakref. Python của tôi là 2,7,14
Csaba Toth

Trong trường hợp của tôi, tôi đang sử dụng các môi trường ảo và tôi nghi ngờ rằng con trăn bên trong các môi trường ảo đó hiện không đồng bộ với phiên bản hệ thống đến mức xảy ra lỗi này. Tôi nghi ngờ rằng việc xây dựng lại môi trường ảo từ đầu có thể giải quyết vấn đề của tôi, mặc dù việc đấu tranh để cài đặt tất cả các gói :(
Csaba Toth

Câu trả lời:


26

Đây không phải là một giải pháp Ubuntu, nhưng vì câu hỏi này xuất hiện rất cao trong kết quả tìm kiếm cho lỗi, tôi muốn nói rằng tôi đã gặp lỗi này trên OSX vì hệ thống mặc định Python của tôi là 2.7 và tôi đã cài đặt "python @ 2" trong khi cài đặt gói khác.

Nếu bạn đang dùng OSX và đang sử dụng homebrew, hãy kiểm tra các gói được cài đặt với brew bằng cách chạy brew listvà nếu "python @ 2" xuất hiện trong danh sách đó và Python 2.7 là Python hệ thống của bạn, bạn có thể xóa gói cài đặt brew bằngbrew remove python@2 --ignore-dependencies


2
Điều này xảy ra sau khi nâng cấp bia thay thế nhiều gói bằng gói @ phiên bản mới của họ ... Cảm ơn!
Hugo H

2
Điều này đã giúp tôi. Khi chạy swifttrên Mac tôi đã gặp các lỗi được đề cập ở trên. Hóa ra đó là vì nó đang sử dụng python2 từ brew. Loại bỏ nó đã khắc phục vấn đề của tôi.
jmurphyau

2
Cảm ơn vì điều đó. Nó giúp giải quyết lldbcảnh báo của tôi .
Steven Hepting

Cảm ơn cho những người đứng đầu lên. Tôi vừa cập nhật symlink của mình trong / usr / local / bin / python để trỏ đến python Homebrew mới nhất, thay vì python hệ thống
matt

9

Trong trường hợp bạn đang sử dụng một môi trường ảo, bạn sẽ cần tạo lại nó. Khả năng khác là bạn sử dụng một số phiên bản python dựa trên nguồn hoặc được cài đặt bên cạnh xung đột với hệ thống. Trong trường hợp đó, bạn phải sắp xếp rằng các thư mục và đường dẫn phù hợp được cấu hình nhìn từ các môi trường khác nhau.


3

Trong trường hợp của tôi, đó là một lỗi liên quan đến môi trường ảo. Vì vậy, tạo ra một môi trường ảo mới làm việc cho tôi. Dưới đây là danh sách các lệnh có thể giúp bạn trong cùng.

Cài đặt môi trường ảo:

pip install virtualenv

Tạo một môi trường ảo mới:

virtualenv -p {env_name}

Kích hoạt môi trường ảo:

source env_name/bin/activate

Vô hiệu hóa môi trường ảo của bạn:

deactivate

OP không đề cập đến env ảo để câu trả lời của bạn không giải quyết được vấn đề khi env ảo không được sử dụng.
MikeM
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.