刚刚更新了GAE Python dev环境从1.7.0到1.7.7,并出现错误:
ImportError: No module named json
所以我创建了一个最小的测试用例,这里是app.yap:
application: myapp
version: 1
api_version: 1
runtime: python27
threadsafe: true
libraries:
- name: jinja2
version: "2.6"
handlers:
- url: /test.*
script: test.app
login: required
- url: /.*
script: routes.app
login: required
和test.py:
import webapp2
import json
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.out.write("test.py")
app = webapp2.WSGIApplication([('/test', MainHandler)],
debug=True)
切换开发环境是完全一致的 - 错误是在1.7.7而不是1.7.0(从Linux上从终端运行开发环境)引发的。我没有尝试将其上传到生产环境。它是在尝试从Python 2.5升级到2.7时发生的,所以可能是由于我不熟悉2.7。
答案 0 :(得分:2)
这是一个noobie错误。如上所述,我正在从2.5升级到2.7,在此期间我将simplejson导入json。
在2.5开发期间,我创建了一个名为json.py的文件,当然在升级到2.7并尝试导入json时会引起冲突,所以我重命名了该文件。对不起伙计们,我应该提到这一点,但如果我这样做了,我会意识到...... json.pyc还在闲逛!
删除json.pyc文件修复它。然而,它并没有解释为什么json.pyc的存在影响1.7.7而不是1.7.0 - 两者之间的切换是完全可重复的。
答案 1 :(得分:0)
你可以检查simplejson,就像this post一样,除了我认为在GAE中你从django.utils得到simplejson:
try: from django.utils import simplejson as json
except ImportError: import json
但是import json
的{{3}}。如果上述方法有效,那么您可能在2.5上运行。