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

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

在 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/<me>/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 2.7 - 这是唯一支持 ndb 库的环境:

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

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

关于python - 在 PyCharm Pro 中从 Google App Engine SDK 导入时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55544748/

相关文章:

python - 如何访问 Docker 容器内的应用程序文件?

python - 通过Windows Task Scheduler 调用python 脚本时,如何正确导入用户定义的模块(包)?

google-app-engine - GAE 数据存储中查询的大小/成本

python - 通过单词的拼写来排序字典 - Python 3

python - 问 : How can I create dynamically an iframe inside a web content using Python?

python - 如何从 Python 3.5 升级到 3.6?

python - GAE 找不到 "lib"目录?

python - ID 未返回 Google App Engine 数据存储区中的任何内容

pycharm - PyCharm 中的最大文件大小

python - Pycharm jupyter笔记本wsl : Jupyter package is not installed