代码之家  ›  专栏  ›  技术社区  ›  Phil

Django和Google应用程序引擎帮助程序找不到ipaddr模块

  •  3
  • Phil  · 技术社区  · 15 年前

    我想让姜戈用这个在盖伊上跑 tutorial .

    当我奔跑 python manage.py运行服务器 我得到下面的stacktrace。我对Django和python都是新手,所以我不知道接下来的步骤是什么(这是UbuntuJauntyBTW)。Django似乎没有找到SDK1.3.1附带的GAE模块ipaddr。

    如何让Django找到这个模块?

    /home/username/bin/google_appengine/google/appengine/api/datastore_file_stub.py:40: DeprecationWarning: the md5 module is deprecated; use hashlib instead
      import md5
    
    /home/username/bin/google_appengine/google/appengine/api/memcache/__init__.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
      import sha
    Traceback (most recent call last):
      File "manage.py", line 18, in <module>
        InstallAppengineHelperForDjango()
      File "/home/username/Development/GAE/myapp/appengine_django/__init__.py", line 543, in InstallAppengineHelperForDjango
        InstallDjangoModuleReplacements()
      File "/home/username/Development/GAE/myapp/appengine_django/__init__.py", line 260, in InstallDjangoModuleReplacements
        import django.db
      File "/home/username/Development/GAE/myapp/django/db/__init__.py", line 57, in <module>
        'TIME_ZONE': settings.TIME_ZONE,
      File "/home/username/Development/GAE/myapp/appengine_django/db/base.py", line 117, in __init__
        self._setup_stubs()
      File "/home/username/Development/GAE/myapp/appengine_django/db/base.py", line 128, in _setup_stubs
        from google.appengine.tools import dev_appserver_main
      File "/home/username/bin/google_appengine/google/appengine/tools/dev_appserver_main.py", line 82, in <module>
        from google.appengine.tools import appcfg
      File "/home/username/bin/google_appengine/google/appengine/tools/appcfg.py", line 53, in <module>
        from google.appengine.api import dosinfo
      File "/home/username/bin/google_appengine/google/appengine/api/dosinfo.py", line 25, in <module>
        import ipaddr
    ImportError: No module named ipaddr
    
    3 回复  |  直到 15 年前
        1
  •  3
  •   Iker Jimenez    15 年前

    它也发生在 app-engine-patch

    解决办法是增加 $GOOGLE_APP_ENGINE/lib/ipaddr 到了你的肾盂,就像你对其他依赖性,如antl3或yaml所做的那样。

        2
  •  7
  •   TheJacobTaylor    15 年前

    http://code.google.com/p/ipaddr-py/ 安装。

    有关问题的信息: http://code.google.com/p/google-app-engine-django/issues/detail?id=161#c3

    谷歌:

    > Hi, just apply this patch from: http://code.google.com/p/google-app-engine-
    django/source/detail?r=102
    
    -------
    
    Log message
    
    Adds new dependency, ipaddr, from SDK
    Affected files     expand all   collapse all
        Modify  /trunk/appengine_django/__init__.py diff
    ...         
    129 129             SDK_PATH,
    130 130             os.path.join(SDK_PATH, 'lib', 'antlr3'),
    131 131             os.path.join(SDK_PATH, 'lib', 'django'),
    132 +           os.path.join(SDK_PATH, 'lib', 'ipaddr'),
    132 133             os.path.join(SDK_PATH, 'lib', 'webob'),
    133 134             os.path.join(SDK_PATH, 'lib', 'yaml', 'lib'),
    134 135         ]
    
        3
  •  1
  •   Youdaman    15 年前

    按照这里的教程,我遇到了同样的问题: http://code.google.com/appengine/articles/appengine_helper_for_django.html

    我同意您需要将ipaddr添加到模块路径中。为此,我在d:\python26\lib\site packages目录中创建了一个名为ipaddr.pth的文本文件,它包含一行:

    D:\Program Files\Google\google_appengine\lib\ipaddr
    

    这是该模块的路径。

    另一件需要注意的是,您不需要按照建议为Windows安装python,因为它不会自动获取appengine sdk(或者至少它似乎没有为我这样做)。请注意,我的系统路径变量上有d:\program files\google\google\appengine\,但我不确定这是否有帮助(这样我就可以从cli运行其中的助手脚本)。