【问题标题】:ImportError: No module named myapp.settingsImportError:没有名为 myapp.settings 的模块
【发布时间】:2016-04-06 09:44:46
【问题描述】:

我在本地创建了一个 Django 应用程序,我想将它托管在 PythonAnywhere.com 上。我按照https://help.pythonanywhere.com/pages/VirtualEnvForNewerDjango 的指示创建了一个安装了 1.9 的virtualenv。但是,当我尝试运行我的应用程序时,我收到错误 ImportError: No module named myapp.settings

这是我的username_pythonanywhere_com_wsgi.py

import os
import sys

# add your project directory to the sys.path
project_home = u'/home/rhpt'
if project_home not in sys.path:
    sys.path.append(project_home)

# set environment variable to tell django where your settings.py is
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'

# serve django via WSGI
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我也试过myapp.my_app.settings,但没有成功。

我的树

myapp                                                                                                                                 
├── my_app                                                                                                                            
│   ├── __init__.py                                                                                                                        
│   ├── settings.py                                                                                                                        
│   ├── urls.py                                                                                                                            
│   └── wsgi.py                                                                                                                            
├── get_data                                                                                                                               
│   ├── __init__.py                                                                                                                        
│   ├── admin.py                                                                                                                           
│   ├── models.py                                                                                                                          
│   ├── tests.py                                                                                                                           
│   ├── urls.py                                                                                                                            
│   └── views.py                                                                                                                           
└── manage.py    

【问题讨论】:

  • 只是为了澄清——当你说你的wsgi.py时,你的意思是从PythonAnywhere“Web”选项卡链接到的WSGI文件(可能实际上称为yourusername_pythonanywhere_com_wsgi.pywsgi.py在您的 Django 代码树中?您提供的代码应该在前一个中。
  • PythonAnywhere“Web”选项卡中的 wsgi.py。我已经用澄清编辑了这个问题。
  • 感谢更新!
  • 因此,要调试它,请考虑如何导入设置模块。您的 Python 路径上有 /home/rhpt。而你的DJANGO_SETTINGS_MODULEmyapp.settings。这意味着您的设置将从文件/home/rhpt/myapp/settings.py 加载。那肯定是你的设置吗?
  • 我的设置在/home/rhpt/myapp/my_app/settings.py。但是,如果我更改 myapp.my_app.settings.py 的路径,我仍然会收到错误消息。

标签: pythonanywhere


【解决方案1】:

如果您的 settings.py 文件位于 /home/rhpt/myapp/my_app/settings.py 中

那么这部分

# add your project directory to the sys.path 
project_home = u'/home/rhpt'

需要

# add your project directory to the sys.path 
project_home = u'/home/rhpt/myapp'

并保留这个

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

【讨论】:

【解决方案2】:

如果你放一个空的

__init__.py

在与 settings.py 相同的文件夹中,它对我有用

【讨论】:

    猜你喜欢
    • 2017-02-15
    • 2013-03-11
    • 2012-12-07
    • 2012-05-23
    • 2019-07-29
    • 2015-07-04
    • 2014-03-15
    • 2017-12-29
    • 2014-09-12
    相关资源
    最近更新 更多