PythonAnywhere部署WSGI报错:找不到'Project'模块求助
排查Django部署到PythonAnywhere的ModuleNotFoundError问题
检查项目实际目录结构
先确认你的项目路径/home/sizwe93/Project下的结构是否符合Django标准:
正确的标准结构应该是:/home/sizwe93/Project/ ├── Project/ # 内层项目目录,包含settings.py │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py如果你的
settings.py直接放在/home/sizwe93/Project根目录(没有内层Project子目录),那需要把WSGI里的os.environ['DJANGO_SETTINGS_MODULE'] = 'Project.settings'改成os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'。确认项目目录名称匹配
如果你的内层项目目录不是Project(比如克隆下来的GitHub项目内层目录叫mysite或者其他名字),必须同步修改两个地方:- 确保
path = '/home/sizwe93/Project'指向的是包含内层项目目录的外层路径; - 把
os.environ['DJANGO_SETTINGS_MODULE']改成'内层目录名.settings',比如内层目录是mysite就写成'mysite.settings'。
- 确保
添加虚拟环境激活代码
你的WSGI文件里没有加载虚拟环境的配置,PythonAnywhere会默认使用系统Python,导致找不到虚拟环境里的依赖。在WSGI文件开头添加以下代码:activate_this = '/home/sizwe93/.virtualenvs/mysite-virtualenv/bin/activate_this.py' with open(activate_this) as file_: exec(file_.read(), dict(__file__=activate_this))注意路径要和你的虚拟环境实际路径完全一致。
验证sys.path配置
可以在WSGI文件里临时添加打印代码,确认项目路径是否被正确加入sys.path:import sys print(sys.path)保存后刷新网页,去PythonAnywhere的错误日志里查看输出,确保
/home/sizwe93/Project在sys.path列表中。
内容的提问来源于stack exchange,提问作者Sizwe
相关产品推荐
相关产品推荐

