在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-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)
如控制台所示,“枚举”中没有IntFlag对象。当我启动Python控制台时,这些错误会立即显示。我什至没有光标。我要去哪里错了?
答案 0 :(得分:1)
您引用的帖子适用于第一代标准环境-python 2.7-这是唯一支持ndb
库的环境:
对于其他环境,您需要使用通用数据存储客户端库。参考文献: