【问题标题】:GAE import endpoints "No module named endpoints"GAE 导入端点“没有名为端点的模块”
【发布时间】:2016-04-24 07:17:48
【问题描述】:

我正在使用 pycharm 开发 appengine。现在我正在尝试使用端点,我已经把

libraries:
- name: pycrypto
  version: latest
- name: endpoints
  version: 1.0

然后在 main.py 中

import endpoints

但它给了我错误

No module named endpoints

我可以看到 GAE 库中的端点文件夹。有人可以帮忙吗?

*编辑:这只是 IDE (pycharm) 无法找到 endpoints 的问题。该应用程序在开发服务器或云服务器中运行良好。有一张图片只是为了让它更清楚一点:

谢谢

【问题讨论】:

  • 您使用的是托管虚拟机吗?
  • 我想我只是在使用普通虚拟机,而不是托管虚拟机
  • 如果您可以编辑带有完整错误的问题,无论它是否在开发服务器上或您部署时损坏,这可能会有所帮助。如果你认为这是一个错误,你应该file an issue。如果您使用的是托管虚拟机(vm:app.yaml 中的 true),则托管虚拟机不支持端点。
  • 该应用程序在开发服务器或云中运行良好,这只是 IDE(即 pycharm)无法检测和找到 import endpoints 的问题,这意味着我更难调试和自动完成一些语法
  • 啊,抱歉,我误读了你的问题。 Pycharm 有一种添加库的方法。如果它选择 GAE 库,这对我来说是个新闻,但我会手动将它添加到您的路径中。

标签: python-2.7 google-app-engine google-cloud-endpoints gae-module


【解决方案1】:

我在某个地方遇到了以下代码,它在客户端脚本中为我修复了它。我不能说有多少可能是不必要的。您需要为 SDK 安装编辑 google_appengine 路径:

sdk_path = os.path.expanduser('~/work/google-cloud-sdk/platform/google_appengine')

try:
    import google
    google.__path__.append("{0}/google".format(sdk_path))
except ImportError:
    pass

try:
    import protorpc
    protorpc.__path__.append("{0}/lib/protorpc-1.0/protorpc".format(sdk_path))
except ImportError:
    pass

sys.path.append("{0}/lib/endpoints-1.0".format(sdk_path))

【讨论】:

    【解决方案2】:

    我正在使用新版本的 PyCharm 社区,我也必须进行配置。您需要在每个文件夹上设置 Source 选项,例如文件 - 设置 - 项目中的端点:

    【讨论】:

      【解决方案3】:

      您需要添加{GAE_SDK}/lib/endpoints-1.0,而不仅仅是 SDK 本身。之所以可以导入google,是因为它直接在{GAE_SDK}下。由于支持多个版本,您在 app.yaml 中指定的库布局不同。我相信您还需要添加{GAE_SDK}/lib/protorpc-1.0/,它只是没有显示,因为已经存在导入错误。

      【讨论】:

      • 修复它!非常感谢,但是对于protopc,我不需要添加{GAE_SDK}/lib/protorpc-1.0/ 来使其工作
      • 还有系统Python的site-packages中存在google包的问题。涉及将 SDK 的 google 位置添加到导入的“内置”google 模块的 __path__ 的 hack 使 google 下的包可作为 google.<pkg> 使用。清如泥!
      • 这里是使魔法发生的咒语。明白的请务必告诉我:google.__path__.append("{0}/google".format(sdk_path))
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      相关资源
      最近更新 更多