【问题标题】:Error running wsgi application: ModuleNotFoundError运行 wsgi 应用程序时出错:ModuleNotFoundError
【发布时间】:2021-07-20 15:35:25
【问题描述】:

我正在尝试在 pythonanywhere 上托管我的本地 Web 应用程序。 [Django 和网络开发初学者]

我在启动应用程序时遇到以下错误:

Error running WSGI application
2021-04-26 21:46:32,020: ModuleNotFoundError: No module named 'myapp'
2021-04-26 21:46:32,020:   File "/var/www/username_pythonanywhere_com_wsgi.py", line 16, in <module>
2021-04-26 21:46:32,020:     application = get_wsgi_application()
2021-04-26 21:46:32,020: 
2021-04-26 21:46:32,020:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
2021-04-26 21:46:32,020:     django.setup(set_prefix=False)
2021-04-26 21:46:32,020: 
2021-04-26 21:46:32,020:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
2021-04-26 21:46:32,021:     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
2021-04-26 21:46:32,021: 
2021-04-26 21:46:32,021:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/conf/__init__.py", line 82, in __getattr__
2021-04-26 21:46:32,021:     self._setup(name)
2021-04-26 21:46:32,021: 
2021-04-26 21:46:32,021:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/conf/__init__.py", line 69, in _setup
2021-04-26 21:46:32,021:     self._wrapped = Settings(settings_module)
2021-04-26 21:46:32,021: 
2021-04-26 21:46:32,021:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
2021-04-26 21:46:32,021:     mod = importlib.import_module(self.SETTINGS_MODULE)

文件位置:

settings.py 文件位于:

/home/username/WebDev/Website/Django/MyApp/myapp/myapp

我已将 '/var/www/username_pythonanywhere_com_wsgi.py' 文件修改为:

"""
WSGI config for myapp project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
"""

import os
import sys
sys.path.append("/home/username/WebDev/Website/Django/MyApp/myapp")

os.environ('DJANGO_SETTINGS_MODULE', 'myapp.settings')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我在 stackoverflow 上查看了类似的问题,但仍然无法弄清楚我到底出了什么问题。

任何指针/帮助将不胜感激。

【问题讨论】:

    标签: django wsgi python-3.8 pythonanywhere


    【解决方案1】:

    看一看,文件夹结构还不错。

    您可能需要做的是将模块添加到设置中的INSTALLED_APPS

    或者,如果您认为已安装的某些东西出现导入错误或未找到模块错误,那么您可能已将其安装到您的代码未在其中运行的 Python 或 virtualenv 版本中。如果它是未找到的代码的一部分,那么您的 Python 路径未设置,因此它可以看到您尝试导入的模块。见https://help.pythonanywhere.com/pages/DebuggingImportError/

    【讨论】:

    • 您好,感谢您的意见。但是,错误不在路径中,而是在设置值的方式中。我已经发布了这个帖子的答案。
    【解决方案2】:

    错误已解决。

    问题在于 environ 不是函数而是过程参数,因此,像下面这样使用它是导致错误的原因。

    os.environ('DJANGO_SETTINGS_MODULE', 'myapp.settings')
    

    我把代码改成:

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

    错误已解决。

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 2018-12-16
      • 1970-01-01
      • 2019-06-30
      • 2021-11-10
      • 2021-10-18
      • 1970-01-01
      • 2020-08-29
      • 2020-04-08
      相关资源
      最近更新 更多