ModuleNotFoundError: Нет модуля с именем «новая» ошибка при развертывании django с использованием apache - PullRequest
0 голосов
/ 14 марта 2019

Использование версий:

Centos 7 --- django 2.1.7 --- Apache 2.4.6 --- Python 3.6

Я получаю эту ошибку при попытке получить доступ к URL-адресу сервера:

 [wsgi:error] mod_wsgi (pid=9020): Failed to exec Python script file '/home/user/project/new/wsgi.py'.
 [wsgi:error] mod_wsgi (pid=9020): Exception occurred processing WSGI script '/home/conner.johnson/ek/new/wsgi.py'.
 [wsgi:error] Traceback (most recent call last):
 [wsgi:error]   File "/home/user/project/new/wsgi.py", line 19, in <module>
 [wsgi:error]     application = get_wsgi_application()
 [wsgi:error]   File "/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
 [wsgi:error]     django.setup(set_prefix=False)
 [wsgi:error]   File "/lib/python3.6/site-packages/django/__init__.py", line 19, in setup
 [wsgi:error]     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
 [wsgi:error]   File "/lib/python3.6/site-packages/django/conf/__init__.py", line 57, in __getattr__
 [wsgi:error]     self._setup(name)
 [wsgi:error]   File "/lib/python3.6/site-packages/django/conf/__init__.py", line 44, in _setup
 [wsgi:error]     self._wrapped = Settings(settings_module)
 [wsgi:error]   File "/lib/python3.6/site-packages/django/conf/__init__.py", line 107, in __init__
 [wsgi:error]     mod = importlib.import_module(self.SETTINGS_MODULE)
 [wsgi:error]   File "/lib64/python3.6/importlib/__init__.py", line 126, in import_module
 [wsgi:error]     return _bootstrap._gcd_import(name[level:], package, level)
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
 [wsgi:error]   File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
 [wsgi:error] ModuleNotFoundError: No module named 'new'

моя файловая структура (2 приложения, но одно приложение «новое», только доманастройки, wsgi.py и urls.py указывают на второе приложение)

─ home
    └── user
        └── project
            ├── app
            │   ├── <All Code for Webapp including static dir>  
            ├── env (virtualenv)
            ├── manage.py
            ├── new
            │   ├── settings.py
            │   ├── urls.py
            │   └── wsgi.py
            └── requirements.txt

Мой файл django.conf, кажется, в порядке, но, возможно, нет, я вынул python-home, так как он некажется, ничего важного

django.conf:

Alias /static /home/user/project/static
<Directory /home/user/project/static>
    Require all granted
</Directory>

<Directory /home/user/project/new>
     <Files wsgi.py>
        Require all granted
     </Files>
</Directory>


WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess ek python-path=/home/user/project/new  
WSGIProcessGroup ek
WSGIScriptAlias / /home/user/project/new/wsgi.py
TimeOut 600

my wsgi.py (который я оставил нетронутым)

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'new.settings')

application = get_wsgi_application()

Я попытался добавить этоto wsgi.py

import sys

sys.path.append('/home/user/project')
sys.path.append('/home/user/project/new')

но это, похоже, ничего не делает

Я также пытался добавить 'new' в файл settings.py в установленных приложениях

Переменная пути python верна и указывает на 'new', где находится wsgi.py, и я не думаю, что добавление переменной python-home принесет много пользы.

Я искал другие сообщения с тем же ответом и не могу найти решение этой проблемы, у кого-нибудь есть идеи?

1 Ответ

1 голос
/ 14 марта 2019

Похоже, у вас должно быть python-path=/home/user/project/, чтобы вы могли импортировать new.

...