PythonAnywhere部署Django项目遇ModuleNotFoundError: No module named 'api.urls'
解决PythonAnywhere上Django项目的ModuleNotFoundError: 'api.urls'问题
1. 确认应用模块合法性
- 检查
api目录下是否存在__init__.py文件(空文件即可),没有的话创建一个——Python需要这个文件识别目录为可导入模块 - 核对
api/urls.py是否存在,文件名无拼写错误(注意Linux环境区分大小写,别把urls.py写成Urls.py)
2. 验证settings.py的应用注册
确保api已添加到INSTALLED_APPS列表:
INSTALLED_APPS = [ # 其他默认应用 'api', # 名称必须和应用目录完全一致 ]
3. 修正WSGI配置的路径设置
PythonAnywhere的WSGI文件必须正确指向项目根目录,示例配置如下(替换为你的实际路径):
import os import sys # 项目根目录(包含manage.py的目录)绝对路径 project_home = '/home/yourusername/your_project_name' if project_home not in sys.path: sys.path.append(project_home) # 指定settings模块,格式为「项目名.settings」 os.environ['DJANGO_SETTINGS_MODULE'] = 'your_project_name.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
- 若使用虚拟环境,需在WSGI文件开头添加虚拟环境激活代码:
activate_this = '/home/yourusername/venv/bin/activate_this.py' with open(activate_this) as file_: exec(file_.read(), dict(__file__=activate_this))
4. 检查主urls.py的路由引用
确认主项目urls.py中对api.urls的引用无错误:
from django.urls import path, include urlpatterns = [ # 其他路由 path('api/', include('api.urls')), # 应用名和目录名必须匹配 ]
5. 确保依赖与环境正确
- 在PythonAnywhere控制台激活虚拟环境,重新安装依赖:
source /home/yourusername/venv/bin/activate pip install -r requirements.txt
- 修改配置后,务必在PythonAnywhere的Web面板点击Reload按钮重启服务
内容的提问来源于stack exchange,提问作者Danial S
相关产品推荐
相关产品推荐

