首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google在缺少环境变量DJANGO_SETTINGS_MODULE时中止

Google在缺少环境变量DJANGO_SETTINGS_MODULE时中止
EN

Stack Overflow用户
提问于 2013-01-06 22:49:11
回答 1查看 773关注 0票数 1

这是和Django支持的后续问题。

本教程适用于一个空项目,但是当我尝试将现有的Django应用程序部署到时,它会引发错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 223, in Handle
    result = handler(dict(self._environ), self._StartResponse)
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__
    self.load_middleware()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 39, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 40, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

第二,这可能是相关的:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 223, in Handle
    result = handler(dict(self._environ), self._StartResponse)
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__
    self.load_middleware()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 39, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 95, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings

我已经按照教程修改了我的settings.py。应用程序部署时没有问题,syncdb也能工作;数据库和所有必需的表都已就位。

我发现了日志中显示的错误消息的本参考,但是它的建议修复没有帮助。

有什么原因吗?

编辑:

为了缩短这个已经很长的问题,我删除了先前发布的wsgi.py文件。我和这个问题没有任何关系。

编辑2:

我想我做了一点小小的改进,GAE现在在抱怨:

代码语言:javascript
复制
ImportError: No module named properties

我猜想我的app.yaml文件中可能缺少一个条目,但我不知道是哪个文件。我找到了一些关于缺少模块的参考资料,但是没有一个反映了这个错误信息.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-07 14:22:26

经过多次试验和错误之后,我设法解决了这个问题,尽管部分地解决了这个问题:

我没有成功地部署我现有的PyCharm项目(目前为止)。由于我渴望在GAE上运行一个版本,所以我采用了另一种方法,在我的本地机器上创建了一个新的空Django项目(project 2)。

我首先使用运行良好的本教程部署空白项目。然后,我将models.py文件从现有的PyCharm项目复制到project 2,并添加了一个名为properties的应用程序,该应用程序使用了models.py文件。最初,由于GAE一直抱怨找不到我的properties应用程序,这种情况就出了问题。在摆弄它之后,它突然出现在我的管理中。我不知道是什么引起了最初的问题,但现在起作用了。

对我来说,成功的关键是:

我在我的settings.py顶部添加了以下内容:

代码语言:javascript
复制
import os
ROOT_PATH = os.path.dirname(__file__)

..。然后将默认的STATIC_ROOT替换为:

代码语言:javascript
复制
STATIC_ROOT = ROOT_PATH + os.sep + 'static'

然后我跑了:

代码语言:javascript
复制
python manage.py collectstatic

project 2的迪尔。它收集Django管理员使用的所需的静态文件(图像文件、css文件等)。

因此,我目前有一个精简版本的原始项目运行在GAE上。缺少的东西:

  • 最初的项目使用grappelli作为一个更有风格的管理界面。我不确定这是否会在GAE上运行。编辑:在GAE上部署Grappelli是合理的简单。只需将Grappelli包复制到您的项目dir并运行还按照文档添加grappelli urls。重新部署。已完成**
  • 最初的项目使用一个名为templated_email的模块从我的properties应用程序发送模板电子邮件。和grappelli一样:我不确定GAE是否支持这一点。希望它能在GAE上运行,因为它对我的特定应用程序至关重要。编辑:我遇到了 小创业板,这使得templated_email过时了,让我可以插入GAE邮件系统.

老实说,这种方法部分地违背了PyCharm的优点,后者应该完全支持Django和GAE。它可能需要一些额外的研究和调整,以使其启动和运行。

任何评论或见解,上述显然是非常感谢的!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14187640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档