3

我刚刚在 OS X 上升级到 App Engine Python 开发服务器版本 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 运行我的应用程序时,我收到上述错误。

有谁知道发生了什么?

4

3 回答 3

1

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

import json as simplejson

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

于 2013-04-22T09:41:32.453 回答
0

这个问题可能是版本冲突或者sys.path配置错误造成的。这里有一些建议:

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

如果没有任何帮助,您需要更深入地挖掘。出于我们的目的,我们在项目中定制了启动器版本(以避免一些员工在标准库中使用 appengine sdk 存根)。这是http://pastebin.com/iU2PsGhE

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

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

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

于 2013-04-19T05:20:38.290 回答
0

如果您使用的是 eclipse,您必须pip install simplejson在控制台上然后重置您的 python 解释器。为此,您必须:

  1. 右键单击您的 PyDev 项目并单击属性
  2. 在左侧窗格中选择 python 解释器/语法
  3. 单击显示配置解释器的蓝色链接
  4. 点击右上角的删除,然后自动配置
  5. 如果自动配置不起作用,请在您的 python 安装文件夹中手动找到您的 python.exe
于 2013-04-25T05:10:09.777 回答