ImportError: không thể nhập tên _remove_dead_weakref


25

Tôi đã thử tìm kiếm xung quanh nhưng không thể tìm ra cách khắc phục tốt hoặc bất kỳ ai khác có lỗi cụ thể này.

Nó xảy ra sau khi tôi cố gắng cài đặt màn hình với apt-get install screen.

Lỗi:

Setting up python3.6-minimal (3.6.1-1~14.04.york0) ...
Traceback (most recent call last):
  File "/usr/lib/python3.6/py_compile.py", line 6, in <module>
    import importlib._bootstrap_external
  File "/usr/lib/python3.6/importlib/__init__.py", line 57, in <module>
    import types
  File "/usr/lib/python3.6/types.py", line 171, in <module>
    import functools as _functools
  File "/usr/lib/python3.6/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/usr/lib/python3.6/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'
dpkg: error processing package python3.6-minimal (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of python3.6:
 python3.6 depends on python3.6-minimal (= 3.6.1-1~14.04.york0); however:
  Package python3.6-minimal is not configured yet.

dpkg: error processing package python3.6 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python3.6-minimal
 python3.6
E: Sub-process /usr/bin/dpkg returned an error code (1)

Chạy Ubuntu 14.04.

Bản thân màn hình dường như đã được cài đặt lên phiên bản mới nhất nhưng thông báo lỗi vẫn khiến tôi lo lắng.

Thực sự ở một mất mát ở đây, bất kỳ trợ giúp được đánh giá rất cao.


Làm thế nào chính xác bạn đã cài đặt python3.6vào ngày 14.04?
Steeldo

@steel ấn kho lưu trữ jonathanf: askubfox.com/questions/865554/ trên
antonlab

2
Có lẽ đó là một vấn đề với ppa đó?
Steeldo

@steel ấn Tôi cũng có thể đã cài đặt python3.6 bằng một phương thức khác (tôi nghĩ nó được gọi từ nguồn?) nên có thể có những thứ xung đột. Cố gắng tìm ra cách cài đặt lại đúng cách ngay bây giờ,
antonlab

Câu trả lời:


16

Gần đây tôi gặp phải vấn đề này khi tôi đang sử dụng Pycharm 2017.3.2 trên Ubuntu 16.10.

Thiết lập của tôi là:

Tôi đã cài đặt Python 3.6 từ PPA python. Tôi đã có Python 3.6.0b4. Tuy nhiên, tôi mới nâng cấp Ubuntu lên 17.04 nhưng vẫn chưa khởi động lại. Khi tôi khởi động lại máy tính, nó vẫn bị lỗi đó. Do đó, tôi đã cố gắng xem những gì mặc định python3.6trong thiết bị đầu cuối.

  ~ python3.6
Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.

Do đó, tôi nhận ra rằng Python mà tôi có trong virtualenv của tôi có thể bị lỗi thời hoặc trỏ đến một phiên bản Python không chính xác.

Giải pháp :

  • Đảm bảo phiên bản Python 3.6 nào tôi đã cài đặt (3.6.1).
  • Loại bỏ môi trường ảo của tôi.
  • Tạo môi trường ảo mới bằng virtualenvwrapper: mkvirtualenv --python=python3.6

  • Cài đặt các yêu cầu với pip: pip install -r requirements.txt


Chỉ cần chạy vào cái này trên một máy tính xách tay khác mà tôi đã đặt xung quanh. Những bước này đã giúp giải quyết vấn đề của tôi. : D
Hectron

9

Đã xảy ra với tôi sau khi nâng cấp lên Ubuntu 17.10. Tôi đã sửa lỗi python 2.7 virtualenv của mình bằng cách vào thư mục của nó và nhập:

virtualenv -p /usr/bin/python2.7 .

1
Cảm ơn, điều này cũng hoạt động sau khi nâng cấp từ 16.04 lên 18.04.
James Bradbury

6

Điều này đã xảy ra với tôi sau khi nâng cấp Ubuntu lên 17.10.

Tôi đã cố chạy một ứng dụng được cài đặt trong Python virtualenv.

Tôi đã sửa nó như thế này:

cd my-virtualenv-directory
virtualenv . --system-site-packages

Tùy chọn --system-site-packageslà cần thiết vì ứng dụng sử dụng python-gtk từ Ubuntu. Tôi gues trong hầu hết các trường hợp khác nó không cần thiết.

Bây giờ ImportError: cannot import name _remove_dead_weakrefkhông còn nữa :-)


1
Tôi đã gặp phải vấn đề này sau khi nâng cấp lên 18.04 và cách khắc phục này cũng hiệu quả với tôi mà không cần phải cài đặt lại bất kỳ môi trường ảo nào; cảm ơn bạn!
aspiring_sarge

4

Gần đây tôi đã gặp phải một vấn đề tương tự (trường hợp cụ thể của tôi là sử dụng virtualenv sau khi cập nhật cài đặt python hệ thống). Theo báo cáo báo cáo lỗi debian này , có vẻ như một cài đặt python cục bộ có thể can thiệp vào hệ thống. Vì bạn nói rằng bạn đã cài đặt python từ nguồn, đó có lẽ là vấn đề. Báo cáo lỗi được liên kết đề nghị không cài đặt python vào /usr/local(bạn có thể cài đặt vào một tiền tố khác bằng cách sử dụng --prefix=/some/other/directorycờ tới ./configure).


Hấp dẫn. Tôi vẫn còn khá mới với linux nhưng tôi sẽ thấy những gì tôi có thể tìm thấy khi làm điều đó.
antonlab

Tôi đã cài đặt miniconda trong nhà của tôi và may mắn có thể giải quyết vấn đề bằng cách mở một vỏ mới sau khi tôi thiết lập miniconda.
Fred Schoen
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.