Ошибка импорта: невозможно импортировать имя _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.

Сам экран, кажется, установил к его последней версии, но сообщение об ошибке все еще беспокоит меня.

Действительно в недоумении, любая помощь очень ценится.

antonlab
источник
Как именно вы установили python3.6на 14.04?
Steeldriver
@steeldriver jonathanf репозиторий: askubuntu.com/questions/865554/…
antonlab
2
Может быть, это проблема с этим PPA?
Steeldriver
@steeldriver Возможно, я также установил python3.6, используя другой метод (я думаю, он вызывается из исходного кода?), поэтому возможны конфликты. Попытка выяснить, как правильно переустановить прямо сейчас,
antonlab

Ответы:

16

Я недавно столкнулся с этой проблемой, когда я использовал Pycharm 2017.3.2 в Ubuntu 16.10.

Моя установка была:

Я установил Python 3.6 из Python PPA. У меня был 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 install -r requirements.txt

Hectron
источник
Просто столкнулся с этим на другом ноутбуке, который я лежал вокруг. Эти шаги помогли решить мои проблемы. : D
Гектрон
9

Произошло со мной после обновления до Ubuntu 17.10. Я исправил свой python 2.7 virtualenv, зайдя в его папку и введя:

virtualenv -p /usr/bin/python2.7 .
Сиске Бекело
источник
1
Спасибо, это также работало после обновления с 16.04 до 18.04.
Джеймс Брэдбери
6

Это случилось со мной после обновления Ubuntu до 17.10.

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

Я исправил это так:

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

Эта опция --system-site-packagesбыла необходима, потому что приложение использует python-gtk из Ubuntu. Я догадываюсь, что в большинстве других случаев это не нужно.

Сейчас ImportError: cannot import name _remove_dead_weakrefнет :-)

guettli
источник
1
Я столкнулся с этой проблемой после обновления до 18.04, и это исправление сработало и для меня без необходимости переустанавливать какую-либо виртуальную среду; Спасибо!
aspiring_sarge
4

Я недавно сталкивался с подобной проблемой (мой конкретный случай был с использованием virtualenv после обновления установки Python системы). Согласно этому отчету об ошибках Debian , кажется, что локальная установка python может помешать системной. Поскольку вы сказали, что установили python из исходного кода, возможно, это проблема. В связанном отчете об ошибке предлагается не устанавливать Python в /usr/local(вы можете установить другой префикс, используя --prefix=/some/other/directoryфлаг ./configure).

jonathanverner
источник
Интересный. Я все еще новичок в Linux, но я посмотрю, что я могу найти по этому поводу.
antonlab
Я установил миниконду в своем доме и, к счастью, смог решить проблему, открыв новую оболочку после той, в которой я установил миниконду.
Фред Шоен