Apache2.4 + Django 3 - нет модуля с именем 'django' - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь настроить свое первое приложение Django + Apache.

Я использую Django 3.05 , Python 3.8 , Ubuntu 16.04 и Apache 2.4.18 .

Я столкнулся с ошибкой No module named 'django'.

Target WSGI script '/srv/tacdb/mysite/wsgi.py' cannot be loaded as Python module.
Exception occurred processing WSGI script '/srv/tacdb/mysite/wsgi.py'.
Traceback (most recent call last):
File "/srv/tacdb/mysite/wsgi.py", line 12, in <module>
 from django.core.wsgi import get_wsgi_application
ImportError: No module named 'django'

Если я активирую виртуальную среду и запускаю сервер, все работает нормально.

Это my wsgi.py :

import os

from mysite.wsgi import get_wsgi_application

os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"

application = get_wsgi_application()

Это файл конфигурации apache:

Listen 80
<VirtualHost *:80>
        ServerName 
        ServerAdmin 
        ServerAlias 

        DocumentRoot /srv/tacdb

        Alias /static /srv/tacdb/mysite/static

        WSGIDaemonProcess mysite python-home=/srv/tacdb/venv  python-path=/srv/tacdb
        WSGIProcessGroup mysite
        WSGIScriptAlias / /srv/tacdb/mysite/wsgi.py

        <Directory /srv/tacdb/mysite>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/tacdb_error.log
        CustomLog ${APACHE_LOG_DIR}/tacdb_access.log combined
</VirtualHost>


Я установил последнюю версию mod_wsgi .

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

Я вошел как root.

Структура моего проекта:

.
└── tacdb
    ├── manage.py
    ├── mysite
    │   ├── admin.py
    │   ├── apache-site2.conf
    │   ├── apache-site.conf
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── settings.py
    │   ├── static
    │   ├── tacdashboard
    │   ├── templates
    │   ├── urls.py
    │   └── wsgi.py
    ├── README.md
    ├── requirements.txt
    ├── venv
    │   ├── bin
    │   ├── lib
    │   ├── pyvenv.cfg
    │   └── share
    └── venvapt-get
        ├── bin
        ├── include
        ├── lib
        ├── lib64 -> lib
        └── pyvenv.cfg

Я также попытался дать разрешение www-data пользователю для вышеуказанной структуры.

Есть ли у вас какие-либо идеи о том, как решить эту проблему?

Как вы думаете, это все еще проблема, вызванная разрешением 'www-data' в структуре папок?

Что-нибудь было бы здорово!

Пожалуйста, дайте мне знать, нужна ли другая информация. :)

С уважением, Александру Бран

...