ImportError: cannot import name cygrpc on development Google App Engine with Firebase Cloud Firestore
ImportError: cannot import name cygrpc on development Google App Engine with Firebase Cloud Firestore
我正在使用 Python 3.6、Falcon Framework、Google App Engine 和 Firebase Cloud Firestore 构建 RESTful API。在运行时我收到以下错误...
File "E:\Bill\Documents\GitHubProjects\LetsHang-BackEnd\lib\google\cloud\firestore_v1beta1\_helpers.py", line 24, in <module> import grpc
File "E:\Bill\Documents\GitHubProjects\LetsHang-BackEnd\lib\grpc\__init__.py", line 22, in <module>
from grpc._cython import cygrpc as _cygrpc
ImportError: cannot import name cygrpc
在研究 Whosebug 时,我发现了一个 ,但它提出了一个基于 Docker 的解决方案。 Docker 对我们来说不是一个可行的解决方案。我还在 Whosebug 上找到了一篇建议 运行 "pip install grpcio" 的文章。我们并非没有运气。
我们使用 requirements.txt 文件构建 App Engine 依赖项。该文件包含以下内容 ...
falcon==1.4.1
google-api-python-client
google-cloud-firestore
firebase-admin
enum34
grpcio
我们使用命令应用需求文件...
pip install -t lib -r requirements.txt
App Engine 服务器使用命令启动...
dev_appserver.py .
开发环境为Windows10.
您似乎混淆了 GAE 标准环境和灵活环境:
- 使用 Python 3.6 只能在灵活的环境中使用(顺便说一句,基本上是 Docker-based)
- 在
lib
目录下安装应用依赖,本地开发使用dev_appserver.py
仅适用于标准环境
某种程度上相关:
好的。我会写下我的发现,以防有另一个像我这样的傻瓜。
首先,Dan's回答正确。我混合了标准和灵活的环境。我查找了一种将 Falcon Framework 与 App Engine 结合使用的方法;事实证明,唯一的文章使用标准环境。这就是我最终使用 dev_appserver.py 的方式。但是,我的应用程序是 Python 3.6,并且具有阻止降级到 2.7 的依赖项。
要在本地开发灵活的环境,您只需像往常一样运行。对于 Falcon Framework,这意味着使用 Waitress wsgi 服务器。
我发现构建和使用 Python 虚拟环境是一种很好的做法。您为此使用 virtualenv 命令。在部署时,Google 为云中的应用构建一个 docker 容器。要重建所有必需的 Python 包,您必须提供一个 requirements.txt 文件。如果您有虚拟环境,那么使用 pip freeze 可以轻松生成需求文件。
我正在使用 Python 3.6、Falcon Framework、Google App Engine 和 Firebase Cloud Firestore 构建 RESTful API。在运行时我收到以下错误...
File "E:\Bill\Documents\GitHubProjects\LetsHang-BackEnd\lib\google\cloud\firestore_v1beta1\_helpers.py", line 24, in <module> import grpc
File "E:\Bill\Documents\GitHubProjects\LetsHang-BackEnd\lib\grpc\__init__.py", line 22, in <module>
from grpc._cython import cygrpc as _cygrpc
ImportError: cannot import name cygrpc
在研究 Whosebug 时,我发现了一个
我们使用 requirements.txt 文件构建 App Engine 依赖项。该文件包含以下内容 ...
falcon==1.4.1
google-api-python-client
google-cloud-firestore
firebase-admin
enum34
grpcio
我们使用命令应用需求文件...
pip install -t lib -r requirements.txt
App Engine 服务器使用命令启动...
dev_appserver.py .
开发环境为Windows10.
您似乎混淆了 GAE 标准环境和灵活环境:
- 使用 Python 3.6 只能在灵活的环境中使用(顺便说一句,基本上是 Docker-based)
- 在
lib
目录下安装应用依赖,本地开发使用dev_appserver.py
仅适用于标准环境
某种程度上相关:
好的。我会写下我的发现,以防有另一个像我这样的傻瓜。
首先,Dan's回答正确。我混合了标准和灵活的环境。我查找了一种将 Falcon Framework 与 App Engine 结合使用的方法;事实证明,唯一的文章使用标准环境。这就是我最终使用 dev_appserver.py 的方式。但是,我的应用程序是 Python 3.6,并且具有阻止降级到 2.7 的依赖项。
要在本地开发灵活的环境,您只需像往常一样运行。对于 Falcon Framework,这意味着使用 Waitress wsgi 服务器。
我发现构建和使用 Python 虚拟环境是一种很好的做法。您为此使用 virtualenv 命令。在部署时,Google 为云中的应用构建一个 docker 容器。要重建所有必需的 Python 包,您必须提供一个 requirements.txt 文件。如果您有虚拟环境,那么使用 pip freeze 可以轻松生成需求文件。