我正在使用python3 API google-cloud-language 1.3.0中的composer-1.8.3-airflow-1.10.3。
它过去很好,但从过去两周开始,它报道了ImportError:无法从grpc.experimental导入名称'aio‘
我已经检查了软件包的文档,看起来google-cloud-language现在需要grpcio>=1.29.0。然而,根据Composer版本列表,即使是最新版本的composer,它的PyPI包grpcio也停留在1.23.0上。
我试图把它的版本强加给1.29.0,但失败了。
有人能查一下这个问题吗?
发布于 2020-09-02 14:21:03
我成功地将grpcio库版本升级为1.31.0。作为第一步,我建议您将Composer实例升级到最新版本(composer-1.11.3-airflow-1.10.9),因为它应该更稳定,并解决一些问题。
要在Composer中安装更新版本的PyPi包,可以按照以下步骤或正式文件
requirements.txt文件并传递带有版本的包名:grpcio>=1.29.0gcloud composer environments update <ENVIRONMENT_NAME> \\
--update-pypi-packages-from-file </PATH/requirements.txt> \\
--location <LOCATION>我为确认grpcio版本已从1.23.0更改为1.31.0所采取的步骤如下:
ENVIRONMENT CONFIGURATION -> GKE cluster变量中找到GKE cluster值。将GKE_LOCATION替换为区域名称:gcloud container clusters get-credentials ${GKE_CLUSTER} --zone ${GKE_LOCATION}composer-<version>-...开头,POD_NAME以:airflow-worker-...开头kubectl get pods --all-namespaces
kubectl exec -itn <NAMESPACE_NAME> <POD_NAME> -- /bin/bashpip freezegrpcio==1.31.0包。更新:
当您试图安装新的packages试图创建一个新构建时,但是它失败了,通过在Stackdriver中使用以下高级过滤器,可以在用于云构建的日志中看到这一点:
resource.type="build" 问题是冲突的PyPi依赖关系,每次更新操作都会触发一个云构建操作来重建图像。在您正在使用的Composer版本中,当看到任何冲突时,更新操作失败。在最新版本的1.11.3中,您可以选择是否允许冲突。
在此基础上,我要提出两项建议,以避免你们正在经历的问题:
19.0.2版本中使用pip而不是9.0.3。因此,pip本身可能会更好地找到依赖项。https://stackoverflow.com/questions/63703046
复制相似问题