首页 > 解决方案 > 订阅 Google Cloud PubSub 模拟器时出现意外的关键字参数“thread_name_prefix”

问题描述

我正在尝试使用 Google Cloud pubsub 模拟器实现一个 pubsub 类。我正在使用 Python 在 Docker 上执行此操作,它基于 Flask。当我使用需求文件安装 Google Cloud SDK 时,一切正常,但是当我尝试使用时,pipenv我得到了标题中提到的错误,我无法弄清楚如何不拥有它。

这是原始输出的样子:

Unexpected error:<type 'exceptions.TypeError'>
Traceback (most recent call last):
  File "app.py", line 18, in <module>
    pubsub.init()
  File "/app/pubsub.py", line 85, in init
    subscription = subscriber.subscribe(subscription_name, callback)
  File "/usr/local/lib/python2.7/site-packages/google/cloud/pubsub_v1/subscriber/client.py", line 139, in subscribe
    subscr = self._policy_class(self, subscription, flow_control)
  File "/usr/local/lib/python2.7/site-packages/google/cloud/pubsub_v1/subscriber/policy/thread.py", line 90, in __init__
    self._executor = self._get_executor(executor)
  File "/usr/local/lib/python2.7/site-packages/google/cloud/pubsub_v1/subscriber/policy/thread.py", line 134, in _get_executor
    **executor_kwargs
TypeError: __init__() got an unexpected keyword argument 'thread_name_prefix'

这是创建基础镜像(然后用作应用程序的基础)的 Dockerfile:

FROM python:2.7-alpine
RUN set -x && apk add --no-cache build-base && pip install pipenv 
WORKDIR /api
COPY Pipfile ./ 
COPY Pipfile.lock ./ 
RUN set -ex && pipenv install --deploy --system

顺便说一句,当我在RUN pip install google.cloud.pubsub之后立即执行时pipenv install,它确实有效,所以它确实与pipenv.

谢谢您的帮助 :)

标签: pythondockergoogle-cloud-platformgoogle-cloud-pubsubpipenv

解决方案


推荐阅读