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

问题描述 投票:1回答:1

在MacOS上使用PyCharm Pro 2019.1.1,在我的应用程序中使用Flask,Jinja2等编写我的应用程序。我的应用程序的一个版本已经使用App Engine Flexible部署,我希望下一个版本将数据存储用于我的生产环境变量。在尝试关注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指示我选择语言和框架> 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)

正如控制台所说,'enum'中没有IntFlag对象。启动Python控制台时会立即显示这些错误;我甚至没有光标。我哪里错了?

python google-app-engine pycharm app-engine-ndb
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.