Python 升级到appengine开发服务器1.7.6后导入simplejson时出错

Python 升级到appengine开发服务器1.7.6后导入simplejson时出错,python,google-app-engine,Python,Google App Engine,我刚刚在OS X上升级到App Engine Python Development server 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-de

我刚刚在OS X上升级到App Engine Python Development server 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
它成功地完成了。如果我在控制台上运行Python并导入simplejson,我可以成功导入simplejson,但是当通过PyCharm或GoogleAppengineLaunch运行我的应用程序时,我会遇到上述错误


有人知道发生了什么吗?

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

  • 确保只安装了一个版本的sdk。你可能有 安装在
    /usr/local/google\u appengine
    /Applications/GoogleAppEngineLauncher.app/
  • 重新安装appengine后,请在中运行appengine启动器
    /Applications/GoogleAppEngineLauncher.app/
    默认情况下,它会创建一个 创建符号链接时,在
    /usr/local/google\u appengine
    中使用符号链接, 检查权限并确保系统变量设置为 如果需要,本主题可能会有所帮助
  • 使用pycharm时,请确保已启用AppEngine支持
  • 如果您使用的是virtualenv,请确保appengine位于sys.path中
  • 您可以尝试将$APPENGINEPATH/lib添加到sys.path
  • 如果此问题仍然存在,请了解您使用的是哪台服务器 dev_appserver或dev_appserver2,请参阅中的详细信息
如果没有任何帮助,你需要深入挖掘。出于我们的目的,我们在项目中定制了launcher版本(以避免一些员工在标准库中出现Engine sdk存根)。给你

环境设置是通过以下步骤完成的(在我们的案例中和在sdk中):

  • 找到appengine根目录
  • Fid DIR_路径,出于某种原因为$APPENGINEPATH/lib/ipaddr
  • 导入位于$APPENGINEPATH/lib中的第三方库的正确版本/

  • 如果以上没有任何帮助,请随意评论此答案,我们将找到解决方案

    SimpleJson在最新版本中被重命名为Json。如果不更新到simplejson的最新版本,就不会出现此问题。因此,您可以恢复到早期版本,也可以将以下内容添加到出现问题的python文件顶部:

    import json as simplejson
    

    当您安装用于python的App Engine SDK时,Google可能对版本有一些要求

    如果使用eclipse,则必须在控制台上安装simplejson,然后重置python解释器。为此,您必须:

  • 右键单击PyDev项目并单击properties
  • 在左窗格中选择python解释器/语法
  • 单击显示“配置解释器”的蓝色链接
  • 单击右上角的“删除”,然后单击“自动配置”
  • 如果自动配置无法手动运行,请在python安装文件夹中查找python.exe

  • 问题似乎来自于我导入dev_appserver本身(从google.appengine.tools import dev_appserver)以获取一些实用程序的一行。删除这一行似乎可以避免这个问题。您现在运行的是python 2.7,因此您可以直接导入json而不是simplejson,是的,在我的代码中,我实际上只是导入json。导入simplejson实际上在google的开发应用服务器代码中。Pip安装不会有帮助。您需要将simplejson复制到项目中。奇怪的是,你在1.7.6中遇到了这个问题,它应该会影响到每个人。同样的问题,1.7.7也没有解决。我不得不后退到1.7.5才能让它消失。错误提示:当我从
    dev_appserver.py
    中删除
    import simplejson
    行时,我得到了一个单独的
    ImportError:没有由
    /Applications/GoogleAppEngineLauncher.app/…/appengine/cron/groc.py
    引发的名为antlr3的模块
    import json as simplejson