这是和Django支持的后续问题。
本教程适用于一个空项目,但是当我尝试将现有的Django应用程序部署到时,它会引发错误:
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.第二,这可能是相关的:
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现在在抱怨:
ImportError: No module named properties我猜想我的app.yaml文件中可能缺少一个条目,但我不知道是哪个文件。我找到了一些关于缺少模块的参考资料,但是没有一个反映了这个错误信息.
发布于 2013-01-07 14:22:26
经过多次试验和错误之后,我设法解决了这个问题,尽管部分地解决了这个问题:
我没有成功地部署我现有的PyCharm项目(目前为止)。由于我渴望在GAE上运行一个版本,所以我采用了另一种方法,在我的本地机器上创建了一个新的空Django项目(project 2)。
我首先使用运行良好的本教程部署空白项目。然后,我将models.py文件从现有的PyCharm项目复制到project 2,并添加了一个名为properties的应用程序,该应用程序使用了models.py文件。最初,由于GAE一直抱怨找不到我的properties应用程序,这种情况就出了问题。在摆弄它之后,它突然出现在我的管理中。我不知道是什么引起了最初的问题,但现在起作用了。
对我来说,成功的关键是:
我在我的settings.py顶部添加了以下内容:
import os
ROOT_PATH = os.path.dirname(__file__)..。然后将默认的STATIC_ROOT替换为:
STATIC_ROOT = ROOT_PATH + os.sep + 'static'然后我跑了:
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。它可能需要一些额外的研究和调整,以使其启动和运行。
任何评论或见解,上述显然是非常感谢的!
https://stackoverflow.com/questions/14187640
复制相似问题