3

每当我尝试通过 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

4

3 回答 3

2

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

于 2012-04-15T05:16:33.143 回答
2

有趣的是它是一个抛出错误的内置模块(cgi.py)。并且 urllib 就在那里!无法弄清楚为什么会这样!

Snow Leopard 还附带安装了 python 2.6 到 /system/Library/Frameworks/Python.framework/Versions/2.6 但我安装到 /Library/Frameworks/Python.framework/Versions/2.7 的那个。

据此我只需要更改 GAE 首选项中的 Python 引用即可。这行得通。

于 2012-04-15T13:21:13.800 回答
0

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

于 2012-04-15T05:14:29.290 回答