ImportError: невозможно импортировать имя _remove_dead_weakref в django virtualenv - PullRequest
1 голос
/ 04 апреля 2019

После обновления моего рабочего стола Ubuntu до 18.04 с 16.04 django virtualenv отказывается запускаться:

(.djangoenv) mw@desktop:~/theapp$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
  File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 10, in <module>
    from django.apps import apps
  File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/apps/__init__.py", line 1, in <module>
    from .config import AppConfig   # NOQA
  File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/apps/config.py", line 4, in <module>
    from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured
  File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/core/exceptions.py", line 5, in <module>
    from django.utils.encoding import force_text
  File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/utils/encoding.py", line 10, in <module>
    from django.utils.functional import Promise
  File "/home/mw/.djangoenv/local/lib/python2.7/site-packages/django/utils/functional.py", line 1, in <module>
    import copy
  File "/usr/lib/python2.7/copy.py", line 52, in <module>
    import weakref
  File "/usr/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref 

На djangoenv и вне его

$ python --version : 
`Python 2.7.12` 

В надежде решить проблему, я также устанавливаю Python 2.7.16 на рабочий стол, поэтому я получаю:

$ python2.7 --version
Python 2.7.16

Также, когда я пытаюсь установить новое virtualenv, я получаю ту же ошибку:

$ virtualenv .blaenv
Running virtualenv with interpreter /home/mw/.djangoenv/bin/python2
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 21, 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 "/usr/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref

Ответы на ту же ошибку в других контекстах не помогли, и мой поиск не дал никаких подсказок. Так что очень ценю ваши советы.

1 Ответ

1 голос
/ 15 мая 2019

В соответствии с https://askubuntu.com/questions/981663/python2-7-broken-by-weakref-import-error-please-help вам, вероятно, нужно воссоздать свой virtualenv. Я подозреваю, что ваша проблема заключается в том, что вам нужно deactivate ваш текущий env, прежде чем пытаться создать новый, убедившись, что ваш системный интерпретатор python2 - это тот, кто выполняет команду virtualenv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...