WSGI:ModuleNotFoundError:没有名为Django的模块错误

编程入门 行业动态 更新时间:2024-10-17 23:30:29
本文介绍了WSGI:ModuleNotFoundError:没有名为Django的模块错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正尝试在我的Ubuntu服务器上托管我的Django应用程序,当我尝试访问我的网站时,我从Apache日志中收到以下错误:

ModuleNotFoundError: No module named 'django'

我在我的Django应用程序中使用venv和python3.8版(我还在venv中编译并安装了mod_wsgi)。 运行Pip Freeze后,我发现我的venv中确实安装了Django:

APScheduler==3.8.1 asgiref==3.5.0 backports.zoneinfo==0.2.1 certifi==2021.10.8 charset-normalizer==2.0.10 colorama==0.4.4 commonmark==0.9.1 deepdiff==5.7.0 Django==4.0.1 django-cors-headers==3.11.0 djangorestframework==3.13.1 idna==3.3 lxml==4.7.1 mod-wsgi==4.9.1.dev1 ordered-set==4.0.2 prettytable==3.0.0 psycopg2-binary==2.9.3 Pygments==2.11.2 pytz==2021.3 pytz-deprecation-shim==0.1.0.post0 requests==2.27.1 rich==11.1.0 six==1.16.0 soupsieve==2.3.1 sqlparse==0.4.2 tzdata==2021.5 tzlocal==4.1 urllib3==1.26.8 wcwidth==0.2.5 whitenoise==5.3.0

以防万一,我全局安装了Django,但在Apache中仍然出现错误。我一直在尝试遵循一些常见的解决方案,但似乎无法奏效。我是否遗漏了什么或任何设置可能已关闭?

我确实注意到我的APACHE说它配置了3.6,这可能是原因吗?有没有办法让它使用3.8,这是我的python3的默认设置?

我的Django项目的WSGI(Backend/core/wsgi.py):

import os, sys sys.path.append('/home/brickmane/djangoapp/pricewatcher/backend/') sys.path.append('/home/brickmane/djangoapp/pricewatcher/backend/core/') sys.path.append('/home/brickmane/djangoapp/pricewatcher/venv/lib/python3.8/site-packages') from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') application = get_wsgi_application()

我的虚拟主机/etc/apache2/apache2.conf中的设置:

WSGIPythonHome /home/brickmane/djangoapp/pricewatcher/venv WSGIPythonPath /home/brickmane/djangoapp/pricewatcher/backend <VirtualHost *:80> ServerAlias www.d8pricecheck.tk WSGIProcessGroup backend Alias /static/ /home/brickmane/djangoapp/pricewatcher/backend/static/ <Directory /home/brickmane/djangoapp/pricewatcher/backend/static> Require all granted </Directory> WSGIScriptAlias / /home/brickmane/djangoapp/pricewatcher/backend/core/wsgi.py <Directory /home/brickmane/djangoapp/pricewatcher/backend/core> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess backend python-path=/home/brickmane/djangoapp/pricewatcher/backend/core python-home=/home/brickmane/djangoapp/pricewatcher/venv WSGIProcessGroup backend </VirtualHost>

重新启动并访问网站后的完整APACHE错误日志:

[Tue Feb 01 16:24:09.488925 2022] [mpm_prefork:notice] [pid 30163] AH00169: caught SIGTERM, shutting down [Tue Feb 01 16:24:09.618015 2022] [ssl:warn] [pid 30456] AH01916: Init: (brickmaneserver.hsd1.gacast:443) You configured HTTP(80) on the standard HTTPS(443) port! [Tue Feb 01 16:24:09.696360 2022] [ssl:warn] [pid 30459] AH01916: Init: (brickmaneserver.hsd1.gacast:443) You configured HTTP(80) on the standard HTTPS(443) port! [Tue Feb 01 16:24:09.702058 2022] [mpm_prefork:notice] [pid 30459] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1g mod_wsgi/4.5.17 Python/3.6 configured -- resuming normal operations [Tue Feb 01 16:24:09.702100 2022] [core:notice] [pid 30459] AH00094: Command line: '/usr/sbin/apache2' [Tue Feb 01 16:24:11.607243 2022] [wsgi:error] [pid 30490] [remote 27.147.213.242:33593] mod_wsgi (pid=30490): Target WSGI script '/home/brickmane/djangoapp/myserver/backend/core/wsgi.py' cannot be loaded as Python module. [Tue Feb 01 16:24:11.607289 2022] [wsgi:error] [pid 30490] [remote 27.147.213.242:33593] mod_wsgi (pid=30490): Exception occurred processing WSGI script '/home/brickmane/djangoapp/myserver/backend/core/wsgi.py'. [Tue Feb 01 16:24:11.607468 2022] [wsgi:error] [pid 30490] [remote 27.147.213.242:33593] Traceback (most recent call last): [Tue Feb 01 16:24:11.607495 2022] [wsgi:error] [pid 30490] [remote 27.147.213.242:33593] File "/home/brickmane/djangoapp/myserver/backend/core/wsgi.py", line 21, in <module> [Tue Feb 01 16:24:11.607502 2022] [wsgi:error] [pid 30490] [remote 27.147.213.242:33593] from django.core.wsgi import get_wsgi_application [Tue Feb 01 16:24:11.607520 2022] [wsgi:error] [pid 30490] [remote 27.147.213.242:33593] ModuleNotFoundError: No module named 'django' [Tue Feb 01 16:24:14.525726 2022] [wsgi:error] [pid 30490] [remote 108.162.238.29:17852] mod_wsgi (pid=30490): Target WSGI script '/home/brickmane/djangoapp/myserver/backend/core/wsgi.py' cannot be loaded as Python module. [Tue Feb 01 16:24:14.525891 2022] [wsgi:error] [pid 30490] [remote 108.162.238.29:17852] mod_wsgi (pid=30490): Exception occurred processing WSGI script '/home/brickmane/djangoapp/myserver/backend/core/wsgi.py'. [Tue Feb 01 16:24:14.526144 2022] [wsgi:error] [pid 30490] [remote 108.162.238.29:17852] Traceback (most recent call last): [Tue Feb 01 16:24:14.526242 2022] [wsgi:error] [pid 30490] [remote 108.162.238.29:17852] File "/home/brickmane/djangoapp/myserver/backend/core/wsgi.py", line 21, in <module> [Tue Feb 01 16:24:14.526266 2022] [wsgi:error] [pid 30490] [remote 108.162.238.29:17852] from django.core.wsgi import get_wsgi_application [Tue Feb 01 16:24:14.526327 2022] [wsgi:error] [pid 30490] [remote 108.162.238.29:17852] ModuleNotFoundError: No module named 'django' [Tue Feb 01 16:24:14.810004 2022] [wsgi:error] [pid 30490] [remote 162.158.187.159:17484] mod_wsgi (pid=30490): Target WSGI script '/home/brickmane/djangoapp/myserver/backend/core/wsgi.py' cannot be loaded as Python module. [Tue Feb 01 16:24:14.810169 2022] [wsgi:error] [pid 30490] [remote 162.158.187.159:17484] mod_wsgi (pid=30490): Exception occurred processing WSGI script '/home/brickmane/djangoapp/myserver/backend/core/wsgi.py'. [Tue Feb 01 16:24:14.810397 2022] [wsgi:error] [pid 30490] [remote 162.158.187.159:17484] Traceback (most recent call last): [Tue Feb 01 16:24:14.810484 2022] [wsgi:error] [pid 30490] [remote 162.158.187.159:17484] File "/home/brickmane/djangoapp/myserver/backend/core/wsgi.py", line 21, in <module> [Tue Feb 01 16:24:14.810506 2022] [wsgi:error] [pid 30490] [remote 162.158.187.159:17484] from django.core.wsgi import get_wsgi_application [Tue Feb 01 16:24:14.810566 2022] [wsgi:error] [pid 30490] [remote 162.158.187.159:17484] ModuleNotFoundError: No module named 'django' 推荐答案

您必须安装venv Python3.8或更低版本,因为3.7及更低版本与Django 4.0+不兼容。您应该完全删除venv,并使用较新(最新为3.10.2)版本的已安装的Python重新初始化。

如果Ubuntu至少有3.8,那么应该没问题。如果没有,请尝试安装/升级它。 下面是一些如何操作的提示:cloudbytes.dev/snippets/upgrade-python-to-latest-version-on-ubuntu-linux

更多推荐

WSGI:ModuleNotFoundError:没有名为Django的模块错误

本文发布于:2023-11-23 20:02:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1622718.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模块   错误   WSGI   ModuleNotFoundError   Django

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!