0

刚刚将 GAE Python 开发环境从 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 不熟悉。

4

2 回答 2

2

这是一个新手错误。如前所述,我从 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——两者之间的切换是完全可重复的。

于 2013-04-23T12:34:03.167 回答
0

你可以检查simplejson,就像在这篇文章中一样,除了我认为在GAE中你从django.utils得到simplejson:

try: from django.utils import simplejson as json
except ImportError: import json

但是Python 2.7 运行时应该允许import json. 如果上述方法有效,您可能在 2.5 上运行。

于 2013-04-22T16:37:35.260 回答