GAE“没有名为urllib的模块”

时间:2012-04-15 04:52:49

标签: python macos google-app-engine

每当我尝试通过python在GAE上运行示例代码时,我都会收到此错误

File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1665, in LoadModuleRestricted
    description)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cgi.py", line 31, in <module>
    import urllib
ImportError: No module named urllib
INFO     2012-04-15 04:44:54,345 dev_appserver.py:2884] "GET / HTTP/1.1" 500 -

我不确定问题是什么,我尝试了各种修复,就像在这里提出的类似问题一样。

示例代码:

import webapp2
import urllib

class MainPage(webapp2.RequestHandler):
  def get(self):
      self.response.headers['Content-Type'] = 'text/plain'
      self.response.out.write('Hello, webapp World!')

app = webapp2.WSGIApplication([('/', MainPage)],
                              debug=True)

我在Mac OSX 10.6.8(Snow Leopard)上运行并使用Python 2.7.3

3 个答案:

答案 0 :(得分:2)

不确定这是多么相关,但堆栈跟踪中的文件夹结构似乎暗示您使用的是Python 2.6,而您说您拥有2.7.3。也许您需要使用最新版本的Python显式运行脚本。

答案 1 :(得分:2)

有趣的是它是一个内置模块(cgi.py),它会抛出错误。 urllib在那里!无法想象为什么会这样!

Snow Leopard还在/system/Library/Frameworks/Python.framework/Versions/2.6中安装了python 2.6,但我安装的是/Library/Frameworks/Python.framework/Versions/2.7。

根据this,我不得不改变的是GAE偏好中的Python参考。这很有用。

答案 2 :(得分:0)

我不确定为什么urllib导入无效,但在您的示例代码中,您没有使用该模块,因此您根本不需要导入它。