Azure Web App Linux上Gunicorn Worker启动失败:ModuleNotFoundError
针对你遇到的ModuleNotFoundError: No module named 'validator'错误,以下是具体的排查和解决思路:
检查Python路径配置
Azure Web App Linux默认工作目录为/site/wwwroot,你的validator应用位于/site/wwwroot/csvvalidator目录下,Python可能无法自动识别这个路径。可以在Gunicorn启动命令前添加Python路径设置:export PYTHONPATH=/site/wwwroot/csvvalidator && gunicorn csvvalidator.wsgi:application或者确保启动命令在项目根目录(含
manage.py的目录)执行:cd /site/wwwroot/csvvalidator && gunicorn csvvalidator.wsgi:application验证Gunicorn启动命令的正确性
确认启动命令指向正确的WSGI模块。正确的命令格式应为:gunicorn [选项] 项目名称.wsgi:application你的项目名称是
csvvalidator,所以命令里必须是csvvalidator.wsgi:application,不要误写成validator.wsgi。确认依赖与虚拟环境配置
检查部署过程中是否完整安装了所有依赖:- 确保
requirements.txt包含Django及项目所需的所有包; - 确认部署脚本(如GitHub Actions、Azure DevOps Pipeline)正确激活虚拟环境并执行了
pip install -r requirements.txt; - 通过Azure SSH登录服务器,进入项目目录,激活虚拟环境后运行
pip list,验证Django是否已安装。
- 确保
检查
validator应用的模块结构
确保validator目录下的__init__.py文件存在且未被损坏。如果这个文件缺失或内容异常,Python会将该目录视为普通文件夹而非可导入模块。同时确认部署后该目录下的所有文件(如models.py、views.py等)都已完整上传到服务器。核对
settings.py中的应用配置
再次确认INSTALLED_APPS中添加的是准确的'validator',无拼写错误、大小写问题或多余空格。例如:INSTALLED_APPS = [ ... 'validator', ... ]本地模拟服务器环境排查
通过Azure SSH功能登录Web App服务器,进入项目根目录,执行以下命令测试:python manage.py check如果该命令同样报
validator模块找不到,说明问题出在服务器的Python环境或路径配置上,可进一步通过echo $PYTHONPATH查看当前Python路径,确认项目根目录是否在路径中。
内容的提问来源于stack exchange,提问作者LLM_Enthusiast

