База данных Django mysql (версия сервера mariadb: 5.5.68) не работает с wsgi.py
У меня есть рабочее приложение django, которое прекрасно работает на сервере разработки. Как только я пытаюсь использовать его в качестве приложения для рабочего сервера, используя Apache и wsgi.py, оно выдает мне ошибки.
При работе с MYSQL я получаю следующие ошибки:
[Fri Sep 03 13:27:22.424881 2021] [wsgi:error] [pid 15424] [remote 172.30.0.54:49967] import MySQLdb as Database
[Fri Sep 03 13:27:22.424920 2021] [wsgi:error] [pid 15424] [remote 172.30.0.54:49967] File "/home/bakert/.local/share/virtualenvs/trackx_proj_master-nygxcPTP/lib/python3.9/site-packages/MySQLdb/__init__.py", line 24, in <module>
[Fri Sep 03 13:27:22.424952 2021] [wsgi:error] [pid 15424] [remote 172.30.0.54:49967] version_info, _mysql.version_info, _mysql.__file__
[Fri Sep 03 13:27:22.424982 2021] [wsgi:error] [pid 15424] [remote 172.30.0.54:49967] NameError: name '_mysql' is not defined
Когда я делаю pip freeze - Мой файл требований выглядит следующим образом:
asgiref==3.3.4
dj-database-url==0.5.0
dj-email-url==1.0.2
Django==3.1.12
django-cache-url==3.2.3
django-crispy-forms==1.9.2
django-ranged-response==0.2.0
django-simple-captcha==0.5.14
environs==8.0.0
marshmallow==3.12.1
mod-wsgi-httpd==2.4.48.1
mysqlclient==2.0.1
pathlib==1.0.1
Pillow==8.1.0
python-dotenv==0.17.1
pytz==2021.1
six==1.15.0
sqlparse==0.4.1
Итак, похоже, что виртуальная среда должна знать о mysql - но, похоже, она его не находит. Я попробовал вернуться к sqlite - просто чтобы попробовать - и он пожаловался на версию sqlite... так что, похоже, что-то не так в виртуальной среде, которую пытается использовать wsgi.py.
Мой wsgi.py выглядит следующим образом:
import os,sys
sys.path.append('/var/www/trackx_proj/trackx_root')
sys.path.append('/usr/lib64/mysql')
sys.path.append('/home/bakert/.local/share/virtualenvs/trackx_proj_master-
nygxcPTP/lib/python3.9/site-packages/MySQLdb')
sys.path.append('/home/bakert/.local/share/virtualenvs/trackx_proj_master-
nygxcPTP/lib/python3.9/site-packages')
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'trackx.settings')
application = get_wsgi_application()
Кто-нибудь знает, что здесь происходит?
Спасибо