Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

291
Visualizações
Cannot read pickle file in Cloud Run App. TypeError: __cinit__() takes at least 2 positional arguments

I have a Fast API application that I deployed to GCP Cloud Run. It's been working fine until yesterday and I genuinely don't know what went wrong. The issue seems to start at this line when I read in a .pkl file

model = pickle.load(open(os.path.join('models', 'appartementen.pkl'), 'rb'))

The traceback:

    File "pandas/_libs/internals.pyx", line 572, in pandas._libs.internals.BlockManager.__cinit__: TypeError: __cinit__() takes at least 2 positional arguments (0 given) at <module> (/app/src/api/util.py:25)
at <module> (/app/src/api/main.py:8) at
    _call_with_frames_removed (<frozen importlib._bootstrap>:219) at exec_module (<frozen importlib._bootstrap_external>:728) 
at _load_unlocked (<frozen importlib._bootstrap>:677) 
at _find_and_load_unlocked (<frozen importlib._bootstrap>:967) 
at _find_and_load (<frozen importlib._bootstrap>:983) 
at _gcd_import (<frozen importlib._bootstrap>:1006) 
at import_module (/usr/local/lib/python3.7/importlib/__init__.py:127) 
at import_app (/usr/local/lib/python3.7/site-packages/gunicorn/util.py:358) at load_wsgiapp (/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py:39) 
at load (/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py:49) 
at wsgi (/usr/local/lib/python3.7/site-packages/gunicorn/app/base.py:67) 
at load_wsgi (/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py:144) 
at init_process (/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py:119) 
at spawn_worker (/usr/local/lib/python3.7/site-packages/gunicorn/arbiter.py:583)

Note that when I deploy this application locally, everything went fine.

My Dockerfile:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
WORKDIR /app
COPY . ./
COPY src ./src/
COPY models ./models/
RUN pip install -r requirements.txt
COPY setup.py ./
CMD exec gunicorn src.api.main:app

How I deploy to Cloud Run:

gcloud builds submit --tag gcr.io/project-id/api --timeout=3600

gcloud run deploy api --image gcr.io/project-id/api --platform managed --project=project-id --region=europe-west4

requirements.txt:

fastapi==0.63.0
google-cloud-bigquery[bqstorage,pandas]==1.24.0
sentry_sdk==1.0.0
xgboost==1.3.3
scikit-learn==0.23.1
shap==0.39.0
matplotlib==3.4.1

I tried using the same version of scikit-learn according to this suggestion but the issue remains.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

I just ran into this same issue when building a new container today. Unsure of the exact cause at the moment (likely an incompatibility between the pickled object's pandas version and the container's pandas version), but reverting the pandas version worked for me. The pickle was built with 1.2.5, and the container installed 1.3.0. So:

pip uninstall pandas
pip install pandas==1.2.5
over 4 years ago · Santiago Trujillo Relatório

0

This was a bug with pandas 1.3.0, and is fixed with pandas 1.3.1.

As a workaround, replace pickle.load with pandas.read_pickle.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda