Apache2 не находит виртуальный env на базе python3.8 и загружает env на базе python3.6

у меня проблема с развертыванием приложения на основе django с apache2 на ubuntu18.04 с python3.8.

Я установил mod_wsgi и apache2 следующим образом:

sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi-py3

Я создал папку venv в папке проекта.

Я получаю журналы ошибок в виде:

Журнал ошибок 1

[Tue Jun 21 08:34:13.966782 2022] [mpm_event:notice] [pid 660:tid 140673610189760] AH00491: caught SIGTERM, shutting down
[Tue Jun 21 20:11:41.285936 2022] [mpm_event:notice] [pid 32599:tid 139678582156224] AH00489: Apache/2.4.29 (Ubuntu) mod_wsgi/4.5.17 Python/3.6 configured -- resuming normal operations
[Tue Jun 21 20:11:41.287426 2022] [core:notice] [pid 32599:tid 139678582156224] AH00094: Command line: '/usr/sbin/apache2'

Журнал ошибок 2

[Tue Jun 21 20:11:44.374973 2022] [wsgi:error] [pid 32600:tid 139678384367360] [remote 78.180.30.203:4742] mod_wsgi (pid=32600): Target WSGI script '/home/$USER/{{project_name}}/{{project_name}}/wsgi.py' cannot be loaded as Python module.
[Tue Jun 21 20:11:44.375046 2022] [wsgi:error] [pid 32600:tid 139678384367360] [remote 78.180.30.203:4742] mod_wsgi (pid=32600): Exception occurred processing WSGI script '/home/$USER/{{project_name}}/{{project_name}}/wsgi.py'.
[Tue Jun 21 20:11:44.375175 2022] [wsgi:error] [pid 32600:tid 139678384367360] [remote 78.180.30.203:4742] Traceback (most recent call last):
[Tue Jun 21 20:11:44.375230 2022] [wsgi:error] [pid 32600:tid 139678384367360] [remote 78.180.30.203:4742]   File "/home/$USER/{{project_name}}/{{project_name}}/wsgi.py", line 12, in <module>
[Tue Jun 21 20:11:44.375244 2022] [wsgi:error] [pid 32600:tid 139678384367360] [remote 78.180.30.203:4742]     from django.core.wsgi import get_wsgi_application
[Tue Jun 21 20:11:44.375272 2022] [wsgi:error] [pid 32600:tid 139678384367360] [remote 78.180.30.203:4742] ModuleNotFoundError: No module named 'django'

У меня была похожая проблема некоторое время назад, и я решил ее, выполнив следующие шаги:

a. Убедитесь, что для запуска приложения используется правильный venv с правильной версией python. Я использую pipenv для этого, и что я сделал из каталога моего проекта django:

#Check which venv directory used
pipenv --venv
#Install the right python version in the venv, for e.g. 3.8
pipenv install --python 3.8

b. Если он показывает правильный venv (иначе вам нужно активировать правильный venv), вы можете запустить django, используя тот же venv (В моем случае, я запустил его на порту: 8080)

pipenv run python manage.py runserver 8080

Эти решили мою проблему

Вернуться на верх