Apache / mod_wsgi ModuleNotFoundError

问题描述 投票:1回答:1

我正在尝试将Ubuntu VPS托管在Apache/mod_wsgi上的Django网站。如果我以嵌入式模式运行,则将加载网站。

WSGIScriptAlias / /home/admin/web/mywebsite/myproject/wsgi.py
WSGIPythonHome /home/admin/web/mywebsite/venv
WSGIPythonPath /home/admin/web/mywebsite

<Directory /home/admin/web/mywebsite/myproject>
    <Files wsgi.py>
        Order deny,allow
        Allow from all
    </Files>
</Directory>

但是,如果尝试在daemon mode中运行它,则会出现错误:ModuleNotFoundError: No module named 'myproject'

WSGIDaemonProcess myproject python-home=/home/admin/web/mywebsite/venv python-path=/home/admin/web/mywebsite socket-user=#1001
WSGIProcessGroup myproject
WSGIScriptAlias / /home/admin/web/mywebsite/myproject/wsgi.py

我的WSGI文件:

import os

from django.core.wsgi import get_wsgi_application

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

application = get_wsgi_application()

如果我运行manage.py命令,它将在嵌入式和守护程序模式下显示相同的ModuleNotFoundError错误。可能有什么问题吗?

[Mon Feb 24 09:00:37.333725 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335] mod_wsgi (pid=7830): Target WSGI script '/home/admin/web/mywebsite/myproject/wsgi.py' cannot be loaded as Python module.
[Mon Feb 24 09:00:37.333768 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335] mod_wsgi (pid=7830): Exception occurred processing WSGI script '/home/admin/web/mywebsite/myproject/wsgi.py'.
[Mon Feb 24 09:00:37.334090 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335] Traceback (most recent call last):
[Mon Feb 24 09:00:37.334124 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/home/admin/web/mywebsite/myproject/wsgi.py", line 16, in <module>
[Mon Feb 24 09:00:37.334127 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     application = get_wsgi_application()
[Mon Feb 24 09:00:37.334131 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/home/admin/web/mywebsite/venv/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[Mon Feb 24 09:00:37.334133 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     django.setup(set_prefix=False)
[Mon Feb 24 09:00:37.334136 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/home/admin/web/mywebsite/venv/lib/python3.6/site-packages/django/__init__.py", line 19, in setup
[Mon Feb 24 09:00:37.334139 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
[Mon Feb 24 09:00:37.334142 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/home/admin/web/mywebsite/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 76, in __getattr__
[Mon Feb 24 09:00:37.334144 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     self._setup(name)
[Mon Feb 24 09:00:37.334147 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/home/admin/web/mywebsite/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 63, in _setup
[Mon Feb 24 09:00:37.334149 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     self._wrapped = Settings(settings_module)
[Mon Feb 24 09:00:37.334152 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/home/admin/web/mywebsite/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 142, in __init__
[Mon Feb 24 09:00:37.334154 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     mod = importlib.import_module(self.SETTINGS_MODULE)
[Mon Feb 24 09:00:37.334157 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
[Mon Feb 24 09:00:37.334159 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]     return _bootstrap._gcd_import(name[level:], package, level)
[Mon Feb 24 09:00:37.334162 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
[Mon Feb 24 09:00:37.334165 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
[Mon Feb 24 09:00:37.334169 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
[Mon Feb 24 09:00:37.334172 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
[Mon Feb 24 09:00:37.334175 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
[Mon Feb 24 09:00:37.334178 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
[Mon Feb 24 09:00:37.334188 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335]   File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
[Mon Feb 24 09:00:37.334197 2020] [wsgi:error] [pid 7830] [remote 5.187.171.36:18335] ModuleNotFoundError: No module named 'myproject'
python django apache mod-wsgi vps
1个回答
0
投票

尝试使用此方法进行部署。在nginx释放nginx单元之后,您最忘记了gunicorn,AWS弹性beantalk(EB)和在nginx上部署django的旧方法。

仅使用nginx单元来部署django应用程序,问题就已经解决了。

本教程可帮助您快速,安全地部署django,并且性能比gunicorn和uwsgi高得多

https://medium.com/tokyodevs/best-way-to-set-up-django-3-with-nginx-unit-and-mariadb-on-centos-7-301b7f0869c4

© www.soinside.com 2019 - 2024. All rights reserved.