Проблема с django после изменения версии python
Я обновлял свой сервер Ubuntu с версии 16.04 до 18.04, и после завершения обновления некоторые из моих старых сайтов, созданных на Django, перестали работать. В похожих темах я нашел информацию о попытке создать новый virtualenv для каждого сайта - к сожалению, в моем случае это не помогло. Я по-прежнему не могу запустить файл manage.py. В ответ я получаю пачку ошибок, связанных, скорее всего, с импортом модулей.
Traceback (most recent call last):
File "/xxx/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 229, in wrapper
fn(*args, **kwargs)
File "/xxx/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run
autoreload.raise_last_exception()
File "/xxx/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 252, in raise_last_exception
six.reraise(*_exception)
File "/xxx/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 229, in wrapper
fn(*args, **kwargs)
File "/xxx/local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/xxx/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File "/xxx/local/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/xxx/local/lib/python2.7/site-packages/aldryn_forms/contrib/email_notifications/models.py", line 16, in <module>
from emailit.api import construct_mail
File "/xxx/local/lib/python2.7/site-packages/emailit/api.py", line 2, in <module>
import premailer
File "/xxx/local/lib/python2.7/site-packages/premailer/__init__.py", line 2, in <module>
from .premailer import Premailer, transform
File "/xxx/local/lib/python2.7/site-packages/premailer/premailer.py", line 29, in <module>
from lxml import etree
ImportError: /xxx/local/lib/python2.7/site-packages/lxml/etree.so: undefined symbol: PyFPE_jbuf
Я создал виртуальную среду следующим образом:
virtualenv --no-site-packages newvens
,pip install -r requirements.txt
- copied from previous directory,- copying the entire directory with the site to the new environment,
Я также пытался исправить virtualenv с помощью команды: virtualenv --system-site-packages /PATH/TO/EXISTING/ENVIRONMENT
и virtualenv /PATH/TO/EXISTING/ENVIRONMENT
.
Я думаю, что это связано с изменением версии python, потому что в одной среде я не пытался исправить версию: 2.7.12
, а в остальных 2.7.17
.
В новых средах я могу запустить команду pip, а в старых я получаю сообщение:
Traceback (most recent call last):
File "/home/xxx/bin/pip", line 5, in <module>
from pip._internal.main import main
File "/home/xxx/local/lib/python2.7/site-packages/pip/_internal/main.py", line 9, 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
Из любопытства я поставил новый Django в новый virtualenv и он заработал, но импорт старых сайтов не сработал.
... и да, я знаю, что мне следует обновить эти версии Django....