在MacOS上使用PyCharm Pro 2019.1.1,在我的应用程序中使用Flask,Jinja2等编写我的应用程序。我的应用程序的一个版本已经使用App Engine Flexible部署,我希望下一个版本将数据存储用于我的生产环境变量。在尝试关注this post时遇到问题,需要进行以下导入:
from google.appengine.ext import ndb
对于我的生活,我似乎无法让这个导入工作。我相信一旦我的应用程序部署后它会起作用(着名的最后一句话?),但我也很想让它在本地工作。
最初尝试过pip install google-appengine
和pip 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 2.7 - 这是支持ndb
库的唯一环境:
对于其他环境,您需要使用通用数据存储客户端库。参考文献: