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

298
Visualizações
No se puede leer el archivo pickle en la aplicación Cloud Run. TypeError: __cinit__() toma al menos 2 argumentos posicionales

Tengo una aplicación de API rápida que implementé en GCP Cloud Run. Ha estado funcionando bien hasta ayer y realmente no sé qué salió mal. El problema parece comenzar en esta línea cuando leo en un archivo .pkl

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

El rastreo:

 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)

Tenga en cuenta que cuando implementé esta aplicación localmente, todo salió bien.

Mi 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

Cómo implemento en 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

Intenté usar la misma versión de scikit-learn acuerdo con esta sugerencia , pero el problema persiste.

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

0

Acabo de encontrarme con este mismo problema al construir un nuevo contenedor hoy. No estoy seguro de la causa exacta en este momento (probablemente una incompatibilidad entre la versión de pandas del objeto en escabeche y la versión de pandas del contenedor), pero me funcionó revertir la versión de pandas . El pickle se construyó con 1.2.5 y el contenedor se instaló 1.3.0 . Entonces:

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

0

Este fue un error con pandas 1.3.0 y se solucionó con pandas 1.3.1 .

Como solución temporal, reemplace pickle.load con 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