如何解决PythonAnywhere上的ModuleNotFoundError错误?已多次尝试未果
PythonAnywhere部署Django应用时WSGI模块找不到错误
问题描述
在PythonAnywhere平台部署Django应用时,出现WSGI运行错误,多次尝试解决仍未成功。错误核心提示为找不到officialthiruth.settings模块,具体报错日志如下:
2024-01-06 15:41:00,849: Error running WSGI application 2024-01-06 15:41:00,854: ModuleNotFoundError: No module named 'officialthiruth.settings' 2024-01-06 15:41:00,854: File "/var/www/fathu856_pythonanywhere_com_wsgi.py", line 10, in <module> 2024-01-06 15:41:00,855: application = get_wsgi_application() 2024-01-06 15:41:00,855: 2024-01-06 15:41:00,855: File "/home/fathu856/.virtualenvs/mysite-virtualenv/lib/python3.10/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application 2024-01-06 15:41:00,855: django.setup(set_prefix=False) 2024-01-06 15:41:00,855: 2024-01-06 15:41:00,856: File "/home/fathu856/.virtualenvs/mysite-virtualenv/lib/python3.10/site-packages/django/__init__.py", line 19, in setup 2024-01-06 15:41:00,856: configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 2024-01-06 15:41:00,856: 2024-01-06 15:41:00,856: File "/home/fathu856/.virtualenvs/mysite-virtualenv/lib/python3.10/site-packages/django/conf/__init__.py", line 89, in __getattr__ 2024-01-06 15:41:00,856: self._setup(name) 2024-01-06 15:41:00,856: 2024-01-06 15:41:00,856: File "/home/fathu856/.virtualenvs/mysite-virtualenv/lib/python3.10/site-packages/django/conf/__init__.py", line 76, in _setup 2024-01-06 15:41:00,856: self._wrapped = Settings(settings_module) 2024-01-06 15:41:00,857: 2024-01-06 15:41:00,857: File "/home/fathu856/.virtualenvs/mysite-virtualenv/lib/python3.10/site-packages/django/conf/__init__.py", line 190, in __init__ 2024-01-06 15:41:00,857: mod = importlib.import_module(self.SETTINGS_MODULE) 2024-01-06 15:41:00,857: *************************************************** 2024-01-06 15:41:00,857: If you're seeing an import error and don't know why, 2024-01-06 15:41:00,857: we have a dedicated help page to help you debug: 2024-01-06 15:41:00,858: https://help.pythonanywhere.com/pages/DebuggingImportError/ 2024-01-06 15:41:00,858: ***************************************************
报错界面显示:
解决步骤
核对项目目录结构
确认Django项目根目录(包含manage.py和officialthiruth子目录的文件夹)的实际路径,比如是否为/home/fathu856/你的项目名,且officialthiruth目录下存在settings.py文件。修正WSGI配置文件
打开/var/www/fathu856_pythonanywhere_com_wsgi.py,添加项目根目录到Python路径,并确保环境变量设置正确:import os import sys # 替换为你的项目根目录绝对路径 project_path = '/home/fathu856/your_project_folder' if project_path not in sys.path: sys.path.insert(0, project_path) # 指定正确的settings模块 os.environ['DJANGO_SETTINGS_MODULE'] = 'officialthiruth.settings' # 激活虚拟环境(如果使用) activate_env = os.path.expanduser('/home/fathu856/.virtualenvs/mysite-virtualenv/bin/activate_this.py') with open(activate_env) as f: exec(f.read(), {'__file__': activate_env}) from django.core.wsgi import get_wsgi_application application = get_wsgi_application()验证模块可导入性
登录PythonAnywhere控制台,切换到项目根目录,执行命令:python -c "import officialthiruth.settings; print('模块导入成功')"如果报错,检查模块名拼写、目录是否包含
__init__.py文件(Django 3.2+可省略,旧版本可能需要)。重启WSGI服务
在PythonAnywhere的Web控制面板中,找到对应应用的"Reload"按钮,点击重启服务,使配置生效。
内容的提问来源于stack exchange,提问作者FATHAH KONDOTTY
相关产品推荐
相关产品推荐

