Столкновение с ModuleNotFoundError: Нет модуля с именем 'django' на Apache и Django Setup
Нужна помощь и четкое понимание настройки среды Django и Apache. Моя информация о настройках выглядит следующим образом:
- OS: Ubuntu 20.04
- Apache2 настроен с виртуальным хостом
- Django2.2 установлен без sudo
- Python 3.8.10
Конфигурация из default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
WSGIScriptAlias /dynamic /var/project/module/wsgi.py
WSGIApplicationGroup %{GLOBAL}
ServerName localdev.test.com
<Directory /var/www>
AllowOverride None
Require all granted
</Directory>
<Directory /var/project>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
</IfModule>
Теперь моя проблема в том, что всякий раз, когда я пытаюсь получить доступ к компоненту Django Admin, он выбрасывает следующую ошибку в журнале ошибок Apache.
[Tue May 24 04:45:17.726120 2022] [wsgi:error] [pid 12972:tid 140147584620288] [client 103.179.111.50:54976] mod_wsgi (pid=12972): Failed to exec Python script file '/var/project/module/wsgi.py'.
[Tue May 24 04:45:17.726169 2022] [wsgi:error] [pid 12972:tid 140147584620288] [client 103.179.111.50:54976] mod_wsgi (pid=12972): Exception occurred processing WSGI script '/var/project/module/wsgi.py'.
[Tue May 24 04:45:17.726247 2022] [wsgi:error] [pid 12972:tid 140147584620288] [client 103.179.111.50:54976] Traceback (most recent call last):
[Tue May 24 04:45:17.726274 2022] [wsgi:error] [pid 12972:tid 140147584620288] [client 103.179.111.50:54976] File "/var/project/module/wsgi.py", line 16, in <module>
[Tue May 24 04:45:17.726279 2022] [wsgi:error] [pid 12972:tid 140147584620288] [client 103.179.111.50:54976] from django.core.wsgi import get_wsgi_application
[Tue May 24 04:45:17.726297 2022] [wsgi:error] [pid 12972:tid 140147584620288] [client 103.179.111.50:54976] ModuleNotFoundError: No module named 'django'
Моя установка не использует виртуальную среду django, а также, как упоминалось выше, django установлен без sudo.
Я попытался проверить следующую информацию со своей стороны.
pip list | grep -i django
It displays following list which includes django and related other modules required in the project:
Django 2.2
django-contrib-comments 1.9.2
django-cors-headers 3.5.0
django-extensions 3.0.9
django-model-utils 3.1.2
django-mysql 3.9.0
django-ses 1.0.3
django-storages 1.6.3
django-user-agents 0.4.0
Также попытался проверить путь для Django:
>>> import sys
>>> sys.path
['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/ubuntu/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']
Which includes django path: /home/ubuntu/.local/lib/python3.8/site-packages
Единственное решение, которое работает в этом случае - это установить Django и другие модули python с помощью sudo, и я не понимаю, почему такое поведение. Также я попытался проверить документацию Django и другие форумы, и везде используется пример для виртуальной среды django. Любопытно, как лучше всего запустить его без виртуальной среды.
Пожалуйста, помогите. Заранее спасибо.