Виртуальные среды Python повреждены при обновлении до Ubuntu 18.04 - PullRequest
0 голосов
/ 08 сентября 2018

Я недавно обновил Ubuntu 16.04 LTS до 18.04 LTS, используя подсказки и окна графического интерфейса с программой обновления программного обеспечения Ubuntu для завершения обновления.

До обновления у меня было несколько виртуальных сред (virtualenv), в каждой из которых был установлен обширный набор пакетов Python.

Когда я активирую virtualenv любые команды Python или import операторы, получается ImportError: cannot import name _remove_dead_weakref. Например, pip freeze приводит к:

$ pip freeze
Traceback (most recent call last):
  File "/home/pwright/virtualenvs/btac-web-plots/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/home/pwright/virtualenvs/btac-web-plots/local/lib/python2.7/site-packages/pip/_internal/__init__.py", line 5, 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

Та же ошибка при попытке начать сеанс ipython:

$ ipython
Traceback (most recent call last):
  File "/home/pwright/virtualenvs/btac-web-plots/bin/ipython", line 7, in <module>
    from IPython import start_ipython
  File "/home/pwright/virtualenvs/btac-web-plots/local/lib/python2.7/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/home/pwright/virtualenvs/btac-web-plots/local/lib/python2.7/site-packages/IPython/core/application.py", line 16, in <module>
    from copy import deepcopy
  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

В большинстве моих виртуальных сред есть Python 2.7.12, тогда как в моей системе Python 2.7.15.

Кто-нибудь еще сталкивался с этим? Что это за ошибка и каково мое лучшее решение для восстановления функциональности моих виртуальных сред?

1 Ответ

0 голосов
/ 08 сентября 2018

Эта проблема была решена путем создания новых виртуальных сред. При создании нового virtualenv установленный Python - 2.7.15, который, вероятно, был проблемой ранее.

После создания новых виртуальных сред и установки всех пакетов с pip мои сценарии, специфичные для проекта, успешно запускаются. Это легко, если у вас есть файл requirements.txt, и гораздо более утомительно, если нет! Я настоятельно рекомендую создать requirements.txt для каждого virtualenv до обновления Ubuntu.

...