ImportError: не может импортировать имя _remove_dead_weakref

Я попытался искать вокруг, но не смог найти хорошую фиксацию или кого-либо еще с этой определенной ошибкой.

Это происходит после того, как я попытаюсь установить экран с 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.

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

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

25
задан 20 April 2017 в 06:54

5 ответов

Я недавно столкнулся с этой проблемой, когда я использовал Pycharm 02.03.2017 на 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).
  • Удаленный мой virtualenvironment.
  • Созданный новый virtualenvironment, использующий virtualenvwrapper: mkvirtualenv --python=python3.6

  • Установленный требования с зернышком: pip install -r requirements.txt

16
ответ дан 23 November 2019 в 01:13

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

4
ответ дан 23 November 2019 в 01:13

Это произошло со мной после обновления 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 не стал :-)

6
ответ дан 23 November 2019 в 01:13

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

virtualenv -p /usr/bin/python2.7 .
9
ответ дан 23 November 2019 в 01:13

Я не уверен, почему, но использование

python3 -m venv venv

вместо

virtualenv -p python3 venv

, а затем активация venv или установка путей вручную, что-то вроде этого

      export PYTHONPATH=.:\$PYTHONPATH
      VIRTUAL_ENV=`pwd`/venv
      export VIRTUAL_ENV
      PATH="\$VIRTUAL_ENV/bin:\$PATH"
      export PATH

у меня сработало.

Я попытался быстро найти различия между модулем virtualenv и python3 -m venv ... но ничего не нашел.

0
ответ дан 15 January 2020 в 19:43

Другие вопросы по тегам:

Похожие вопросы: