ImportError: неможливо імпортувати ім'я _remove_dead_weakref


25

Я намагався здійснити пошук, але не зміг знайти гарного виправлення чи когось іншого з цією конкретною помилкою.

Це відбувається після того, як я спробую встановити екран із apt-get install screen.

Помилка:

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)

Запуск Ubuntu 14.04.

Здається, сам екран встановлений до останньої версії, але повідомлення про помилку все ще мене хвилює.

Дійсно, тут втрачається будь-яка допомога, дуже цінується.


Як саме ви встановили python3.614.04?
steeldriver

@steeldriver jonathanf repository: askubuntu.com/questions/865554/…
antonlab

2
Можливо, це проблема з цією програмою?
steeldriver

@steeldriver Я, можливо, також встановив python3.6, використовуючи інший метод (я думаю, це викликано з джерела?), тому можуть виникнути конфліктні речі. Намагаємось з’ясувати, як правильно перевстановити зараз,
antonlab

Відповіді:


16

Нещодавно я стикався з цим питанням, коли використовував Pycharm 2017.3.2 на Ubuntu 16.10.

Моя установка:

Я встановив Python 3.6 з PPA python. У мене був Python 3.6.0b4. Однак я щойно оновив Ubuntu до 17.04, але ще не перезавантажився. Коли я перезавантажив комп’ютер, він все-таки кидав цю помилку. Тому я спробував побачити, що за замовчуванням python3.6було в терміналі.

  ~ 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.

Тому я зрозумів, що Python, який я мав у своєму virtualenv, може бути застарілим або вказувати на неправильну версію Python.

Рішення :

  • Переконався, яку версію Python 3.6 я встановив (3.6.1).
  • Видалено моє віртуальне оточення.
  • Створено нове віртуальне середовище за допомогою virtualenvwrapper: mkvirtualenv --python=python3.6

  • Встановлені вимоги з pip: pip install -r requirements.txt


Щойно наткнувся на це на іншому ноутбуці, який я проклав. Ці кроки допомогли вирішити мої проблеми. : D
Гектрон

9

Сталося зі мною після оновлення до Ubuntu 17.10. Я виправив свій python 2.7 virtualenv, перейшовши до його папки та ввівши:

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

1
Дякую, це також працювало після оновлення з 16.04 до 18.04.
Джеймс Бредбері

6

Це сталося зі мною після оновлення Ubuntu до 17.10.

Я спробував запустити додаток, яке було встановлено у virtualenv Python.

Я це виправив так:

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

Опція --system-site-packagesбула потрібна, оскільки програма використовує python-gtk від Ubuntu. Гадаю, в більшості інших випадків це не потрібно.

Зараз ImportError: cannot import name _remove_dead_weakrefпішов :-)


1
Я зіткнувся з цим питанням після оновлення до 18.04, і це виправлення працювало і для мене, не потребуючи перевстановлення будь-якого з віртуальних середовищ; Дякую тобі!
aspiring_sarge

4

Нещодавно я стикався з подібною проблемою (мій конкретний випадок використовував virtualenv після оновлення установки системного пітона). Відповідно до цього звіту про помилку Debian , схоже, що локальна установка python може заважати системній системі. Оскільки ви сказали, що встановили python з джерела, це, мабуть, проблема. Зв'язаний звіт про помилку пропонує не встановлювати python в /usr/local(ви можете встановити інший префікс, використовуючи --prefix=/some/other/directoryпрапор до ./configure).


Цікаво. Я все ще зовсім новачок у Linux, але я побачу, що я можу знайти про це.
antonlab

Я встановив мініконду в своєму будинку і, на щастя, міг вирішити проблему, відкривши нову оболонку після тієї, в якій я встановив мініконду.
Фред Шоен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.