Python 在PyCharm Pro中从Google App Engine SDK导入时出现问题

Python 在PyCharm Pro中从Google App Engine SDK导入时出现问题,python,google-app-engine,pycharm,app-engine-ndb,Python,Google App Engine,Pycharm,App Engine Ndb,在MacOS上使用PyCharm Pro 2019.1.1,用Python 3 w/Flask、Jinja2等编写我的应用程序。我的应用程序的一个版本已经使用app Engine Flexible部署,我希望下一个版本使用数据存储来存储我的生产环境变量。尝试跟随时遇到问题,需要以下导入: 从google.appengine.ext导入ndb 就我的一生而言,我似乎无法让这个重要的东西发挥作用。我确信,一旦我的应用程序被部署(著名的遗言?),它就会工作,但我也希望它能在本地工作 最初尝试了pip安

在MacOS上使用PyCharm Pro 2019.1.1,用Python 3 w/Flask、Jinja2等编写我的应用程序。我的应用程序的一个版本已经使用app Engine Flexible部署,我希望下一个版本使用数据存储来存储我的生产环境变量。尝试跟随时遇到问题,需要以下导入:

从google.appengine.ext导入ndb

就我的一生而言,我似乎无法让这个重要的东西发挥作用。我确信,一旦我的应用程序被部署(著名的遗言?),它就会工作,但我也希望它能在本地工作

最初尝试了
pip安装google appengine
pip安装appengine sdk
,但发现两者都无法安装在我的venv上

Google Cloud SDK v241.0.0安装在
/Users//Google Cloud SDK
,gcloud命令在终端中工作
gcloud组件列表
显示安装了
appengine python
组件,这可能与我在PyCharm中使用的是venv无关

PyCharm指示我选择语言和框架下的App Engine SDK目录谷歌App Engine

选择
/Users//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//Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/pydevconsole.py”,第5行
从_pydev_comm.rpc导入make_rpc_客户端,启动_rpc_服务器,启动_rpc_服务器和_make_客户端
文件“/Users//Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/_pydev_comm/rpc.py”,第4行
从_pydev_comm.server导入TSingleThreadedServer
文件“/Users//Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/_pydev_comm/server.py”,第4行
从_shaded_thriftpy.server导入服务器
文件“/Users//Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/third_party/thriftpy/_shade_thriftpy/server.py”,第5行
导入日志记录
文件“/Users//googlecloudsdk/lib/surface/logging/_init__.py”,第22行,在
来自googlecloudsdk.calliope导入库
ModuleNotFoundError:没有名为“googlecloudsdk”的模块
选择
/Users//google cloud sdk/platform/google\u 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)
回溯(最近一次呼叫最后一次):
文件“/Users//Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/pydevconsole.py”,第5行
从_pydev_comm.rpc导入make_rpc_客户端,启动_rpc_服务器,启动_rpc_服务器和_make_客户端
文件“/Users//Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6605.12/PyCharm.app/Contents/helpers/pydev/_pydev_comm/rpc.py”,第1行
导入套接字
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py”,第53行,在
从枚举导入IntEnum、IntFlag
导入错误:无法从“enum”导入名称“IntFlag”(/Users//google cloud sdk/platform/google\u appengine/lib/grpcio-1.9.1/enum/\u init\u.py)

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

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

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

  • -适用于第二代标准环境
  • -灵活的环境
潜在利益: