【问题标题】:Problems importing from Google App Engine SDK in PyCharm Pro在 PyCharm Pro 中从 Google App Engine SDK 导入时出现问题
【发布时间】:2019-08-27 21:50:23
【问题描述】:

在 MacOS 上使用 PyCharm Pro 2019.1.1,使用带有 Flask、Jinja2 等的 Python 3 编写我的应用程序。我的应用程序的一个版本已经使用 App Engine Flexible 部署,我希望下一个版本使用 Datastore 作为我的生产环境变量。尝试关注 this post 时遇到问题,需要以下导入:

from google.appengine.ext import ndb

对于我的生活,我似乎无法让这个导入工作。我确信部署我的应用程序后它会工作(著名的遗言?),但我也希望它在本地工作。

最初尝试pip install google-appenginepip install appengine-sdk,却发现我的venv 上都安装不了。

Google Cloud SDK v241.0.0 安装在/Users/<me>/google-cloud-sdk,gcloud 命令在终端中运行。 gcloud components list 显示已安装 app-engine-python 组件,这可能无关紧要,因为我在 PyCharm 中使用了 venv。

PyCharm 的 documentation 指示我选择 Languages & Frameworks > Google App Engine 下的 App Engine SDK 目录。

选择/Users/<me>/google-cloud-sdk 会产生此错误:

Traceback (most recent call last):
  File "/Users/<me>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/pydevconsole.py", line 5, in <module>
    from _pydev_comm.rpc import make_rpc_client, start_rpc_server, start_rpc_server_and_make_client
  File "/Users/<me>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/_pydev_comm/rpc.py", line 4, in <module>
    from _pydev_comm.server import TSingleThreadedServer
  File "/Users/<me>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/_pydev_comm/server.py", line 4, in <module>
    from _shaded_thriftpy.server import TServer
  File "/Users/<me>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/third_party/thriftpy/_shaded_thriftpy/server.py", line 5, in <module>
    import logging
  File "/Users/<me>/google-cloud-sdk/lib/surface/logging/__init__.py", line 22, in <module>
    from googlecloudsdk.calliope import base
ModuleNotFoundError: No module named 'googlecloudsdk'

选择/Users/&lt;me&gt;/google-cloud-sdk/platform/google_appengine 似乎让我更进一步,但仍然产生错误:

Traceback (most recent call last):
  File "/Users/<me>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/pydevconsole.py", line 5, in <module>
    from _pydev_comm.rpc import make_rpc_client, start_rpc_server, start_rpc_server_and_make_client
  File "/Users/<me>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/_pydev_comm/rpc.py", line 1, in <module>
    import socket
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 53, in <module>
    from enum import IntEnum, IntFlag
ImportError: cannot import name 'IntFlag' from 'enum' (/Users/<me>/google-cloud-sdk/platform/google_appengine/lib/grpcio-1.9.1/enum/__init__.py)

正如控制台所指出的,“枚举”中没有 IntFlag 对象。当我启动 Python 控制台时,这些错误会立即显示出来;我什至没有光标。我哪里错了?

【问题讨论】:

    标签: python google-app-engine pycharm app-engine-ndb


    【解决方案1】:

    您引用的帖子适用于第一代标准环境——Python 2.7——这是唯一支持ndb 库的环境:

    对于其他环境,您需要使用通用数据存储客户端库。参考资料:

    可能感兴趣:How to tell if a Google App Engine documentation page applies to the standard or the flexible environment

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-18
      • 2011-11-16
      • 2019-10-08
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      相关资源
      最近更新 更多