升级到appengine dev server 1.7.6后导入simplejson时出错

时间:2013-04-02 04:21:35

标签: python google-app-engine

我刚刚在OS X上升级到App Engine Python Development服务器版本1.7.6,并且自升级以来,当我尝试运行我的应用程序时收到以下错误:

ERROR    2013-04-02 04:05:14,268 wsgi.py:219] 
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 196, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
    handler = __import__(path[0])
  File "/Users/rmorlok/Dropbox/ryanroot/ryan-projects/Development/docalytics/online/main.py", line 13, in <module>
    from google.appengine.tools import dev_appserver
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 62, in <module>
    import simplejson
ImportError: No module named simplejson

我确保通过运行

安装simplejson
sudo pip install simplejson

成功完成。如果我在控制台上运行Python并导入它,我可以成功导入simplejson,但是当通过PyCharm或GoogleAppengineLaunch运行我的应用程序时,我得到了上述错误。

有谁知道发生了什么事?

3 个答案:

答案 0 :(得分:1)

SimpleJson已在最新版本中重命名为Json。如果您没有更新到simplejson的最新版本,则不会出现此问题。所以你可以恢复到早期版本,或者你可以将以下内容添加到python文件的顶部,提出问题:

import json as simplejson

在安装适用于python的App Engine SDK时,Google可能会对这些版本有一些要求。

答案 1 :(得分:0)

此问题可能是由版本冲突或sys.path的错误配置引起的。 以下是一些建议:

  • 确保您只安装了一个版本的sdk。你可能有 /usr/local/google_appengine和{}中安装了两个版本 /Applications/GoogleAppEngineLauncher.app/
  • 重新安装appengine后,运行appengine启动器 /Applications/GoogleAppEngineLauncher.app/默认情况下会创建一个 /usr/local/google_appengine中的符号链接创建符号链接时 检查权限并确保将系统变量设置为 需要,这个主题可能会有所帮助 Configuring App Engine path for PyDev on Mac
  • 使用pycharm时,请确保启用了appegine支持。
  • 如果您使用的是virtualenv,请确保appengine位于sys.path。
  • 您可以尝试将$ APPENGINEPATH / lib添加到sys.path
  • 如果此问题仍然存在,请了解您使用的是哪个服务器 dev_appserver或dev_appserver2,请参阅release notes
  • 中的详细信息

如果没有任何帮助你需要深入挖掘。为了我们的目的,我们在我们的项目中有自定义版本的启动器(以避免一些工作人员在标准库中添加sdk存根)。这是http://pastebin.com/iU2PsGhE

环境设置由这些步骤完成(在我们的例子中和在sdk中):

  1. 找到appengine根目录。
  2. Fid DIR_PATH,由于某种原因$ APPENGINEPATH / lib / ipaddr
  3. 导入位于$ APPENGINEPATH / lib /
  4. 中的正确版本的第三方库

    如果上述任何内容都无法对此答案发表评论,我们将找到解决方案。

答案 2 :(得分:0)

如果您正在使用eclipse,则必须在控制台上pip install simplejson,然后重置您的python解释器。要做到这一点,你必须:

  1. 右键单击PyDev项目并单击propterties
  2. 在左窗格中选择python解释器/语法
  3. 点击配置解释器的蓝色链接
  4. 点击右上角的删除,然后点击autoconfig
  5. 如果自动配置无效,请在python安装文件夹中找到python.exe