google应用程序引擎(python):没有名为django的模块

google应用程序引擎(python):没有名为django的模块,django,google-app-engine,ubuntu-9.04,Django,Google App Engine,Ubuntu 9.04,因此,我尝试将django 1.1模板引擎与google app engine web app框架一起使用,从。这是在UbuntuJaunty上,我已经确保PYTHONPATH包含Django-1.1.1的位置,但是当它尝试执行下面的use_library()行时,我得到了这个“ImportError:没有名为Django的模块”错误。再说一次,有人能帮我吗?我被难住了 import os os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' fro

因此,我尝试将django 1.1模板引擎与google app engine web app框架一起使用,从。这是在UbuntuJaunty上,我已经确保PYTHONPATH包含Django-1.1.1的位置,但是当它尝试执行下面的use_library()行时,我得到了这个“ImportError:没有名为Django的模块”错误。再说一次,有人能帮我吗?我被难住了

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')

@stallarida-问题是.96是作为SDK的默认版本提供的。我最后做的是将appengine目录中的django版本更新为1.1,这是一个肮脏的攻击,但很有效。工作正常,需要在开发和生产之间进行一些调整。 具体来说,我必须在本地运行时注释掉
使用_library('django','1.1')
,但在上传我的应用程序时要包含它


我确信有更好的解决方案,当我的linux体验提高时,我会解决它。

提出了以下解决方案:

获取django 1.1并将其放在项目根目录下

将一个空文件“non_gae_indicator”添加到项目根文件夹中

将django和non_gae_指示器添加到skip_files元素:

skip_files:
- ^(.*/)?app\.yaml
- ^(.*/)?app\.yml
- ^(.*/)?index\.yaml
- ^(.*/)?index\.yml
- ^(.*/)?#.*#
- ^(.*/)?.*~
- ^(.*/)?.*\.py[co]
- ^(.*/)?.*/RCS/.*
- ^(.*/)?\..*
- ^(.*/)?.*\.bak$
- ^django
- ^non_gae_indicator
现在我们有了一种方法来判断我们是在GAE sdk下运行还是在live下运行——因为当我们处于live状态时,非GAE的指示器将不可用

因此,在main.py中,您可以执行以下操作:

if not os.path.exists(os.path.abspath(os.path.dirname(__file__)) + '/non_gae_indicator'):
    # GAE
    from google.appengine.dist import use_library
    use_library('django', '1.1')
else:
    # Not GAE - Add our django package to the path
    sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)) + '/django')
您应该使用--allow_skipped_files标志运行本地SDK服务器(否则,在检查跳过的文件时,这些文件似乎不存在-服务器控制台会对此发出警告)