Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

6.2K
Views
Error de Python 3.7: Protocolo Pickle 5 no compatible

Estoy tratando de restaurar un archivo de configuración en escabeche de RLLib ( json no funcionó como se muestra en esta publicación ) y obtengo el siguiente error:

 config = pickle.load(open(f"{path}/params.pkl", "rb")) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-28-c964561b863c> in <module> ----> 1 config = pickle.load(open(f"{path}/params.pkl", "rb")) ValueError: unsupported pickle protocol: 5

Versión de Python = 3.7.0

¿Cómo puedo abrir este archivo en 3.7?

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Use pickle5 o cárguelo en python 3.8+ y luego serialícelo a una versión inferior usando el parámetro de protocolo.

over 4 years ago · Santiago Trujillo Report

0

En el caso de que no puedas cargar pickle5 por sus dependencias (principalmente Visual Building c++), otra solución podría ser que cambies el intérprete de Python que estás usando (al antiguo, antes de que ocurriera el error). Para mí, recibí este error después de ejecutar un programa en IDLE que había estado ejecutando en Spyder. Cuando lo ejecuté nuevamente dentro de Spyder, dejó caer este error.

 Python Error: Unsupported Pickle Protocol 5

Para resolver esto, en Spyder cambié mi intérprete de Python al Python que estaba usando con IDLE (Herramientas -> Preferencias). Una vez que reinicié Spyder, tuve que instalar las dependencias necesarias con el símbolo del sistema para que dentro de Spyder se pudiera usar la consola:

 pip install spyder-kernels

Naturalmente, esto puede introducir algunas irregularidades dentro de Spyder (es decir, los paquetes con los que se supone que viene ya no están allí debido al intérprete diferente). Estos deben detectarse fácilmente durante la depuración y resolverse mediante instalaciones de pip estándar.

Una vez que recupere sus archivos (que cree que se han perdido), podría ser prudente pensar en volver al intérprete Python de Spyder y actualizar el código para manejar este problema con elegancia (me encantaría que alguien sugiriera en los comentarios cómo hacer esto que no ¡no requiere pickle5!)

over 4 years ago · Santiago Trujillo Report

0

Si este error se debe a la implementación de heroku , verifique su versión de python de la configuración local y la configuración de heroku. Si ambos son diferentes, es posible que te lleve a este error.
Solución:

  • Cree un archivo runtime.txt en el directorio base de su aplicación

Luego, dentro de su runtime.txt, mencione su versión local de python para que no haya conflictos.

 python-3.9.2
over 4 years ago · Santiago Trujillo Report

0

Para los usuarios de pandas que guardaron un marco de datos en un archivo pickle con el protocolo 5 en python 3.8 y necesitan cargarlo en python 3.6, que solo admite el protocolo 4 (lo estoy mirando, google colab ):

 !pip3 install pickle5 import pickle5 as pickle with open(path_to_protocol5, "rb") as fh: data = pickle.load(fh)

También podría guardarse en un pickle de protocolo 4 de python 3.6

 data.to_pickle(path_to_protocol4)

Actualización: si se enfrenta a esto al cargar un modelo desde stable-baselines3:

 !pip install --upgrade --quiet cloudpickle pickle5 from stable_baselines3 import PPO # restart kernel if in jupyter notebook # Might not need this dict in all cases custom_objects = { "lr_schedule": lambda x: .003, "clip_range": lambda x: .02 } model = PPO.load("path/to/model.zip", custom_objects=custom_objects)

Probado el 2021-05-31 con env:

 cloudpickle: 1.6.0 pickle5: 0.0.11 stable-baselines3: 1.0

Referencia: https://brainsteam.co.uk/2021/01/14/pickle-5-madness-with-mlflow/

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!