如何从Visual Studio 2012向Google App Engine发布django Web应用程序

时间:2013-05-23 12:59:30

标签: python django google-app-engine

我正在尝试在Visual Studio 2012中设置一个将发布到Google App Engine的django应用程序。我在Visual Studio中使用pytools设置了一个简单的hello World Application,我可以在开发环境中成功运行。

我添加了app.yaml文件,下载了AppEngine SDK并将现有应用程序导入到Google App Engine Launcher应用程序中。如果我使用App Engine Launcher在本地启动应用程序,它会启动,但页面只是一个错误。我从日志中得到以下信息:

2013-05-23 07:47:03 Running command: "['C:\\Python27\\pythonw.exe', 'C:\\Program Files\\Google\\google_appengine\\dev_appserver.py', '--skip_sdk_update_check=yes', '--port=8080', '--admin_port=8000', 'Z:\\gridtreecontrol\\GridTreeView\\GridTreeView']"
INFO     2013-05-23 07:47:09,496 devappserver2.py:522] Skipping SDK update check.
WARNING  2013-05-23 07:47:09,523 api_server.py:329] Could not initialize images API; you are likely missing the Python "PIL" module.
INFO     2013-05-23 07:47:09,543 api_server.py:153] Starting API server at: http://localhost:61149
INFO     2013-05-23 07:47:09,552 dispatcher.py:164] Starting server "default" running at: http://localhost:8080
INFO     2013-05-23 07:47:09,558 admin_server.py:117] Starting admin server at:     http://localhost:8000
ERROR    2013-05-23 12:47:32,108 wsgi.py:235] 
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\runtime\wsgi.py", line 223, in Handle
result = handler(dict(self._environ), self._StartResponse)
File "C:\Program Files\Google\google_appengine\lib\django-1.4\django\core\handlers\wsgi.py", line 219, in __call__
self.load_middleware()
File "C:\Program Files\Google\google_appengine\lib\django-1.4\django\core\handlers\base.py", line 39, in load_middleware
for middleware_path in settings.MIDDLEWARE_CLASSES:
File "C:\Program Files\Google\google_appengine\lib\django-1.4\django\utils\functional.py", line 184, in inner
self._setup()
File "C:\Program Files\Google\google_appengine\lib\django-1.4\django\conf\__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "C:\Program Files\Google\google_appengine\lib\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
INFO     2013-05-23 07:47:32,128 server.py:585] default: "GET / HTTP/1.1" 500 -

似乎它希望我对sys.path进行一些调整,但我觉得如果我这样做,它就不会将这些更改传播到Google App Engine上的生产服务器。我已经尝试将应用程序发布到服务器,但在那里得到了同样的错误。

在Visual Studio中运行应用程序时,我没有收到此错误。

1 个答案:

答案 0 :(得分:1)

您不应该尝试开发独立的Django应用程序,然后尝试将其转换为GAE。在GAE中运行Django有很多不同之处,最好从那里开始。

我不知道为什么能够在“内部”VS中运行您的应用程序非常重要。同样,您应该使用GAE开发服务器 - 您可以继续在VS中编写代码,并且devserver甚至会在检测到代码更改时重新加载。您可以将VS配置为使用GAE devserver而不是Django,但这听起来像是一些不必要的小问题。