es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Posible solución contra el bloqueo de Emacs+Matplotlib

He luchado durante días para trazar gráficos usando Emacs y la biblioteca matplotlib en Windows10.
Probé varias soluciones tomadas de aquí y allá pero sin éxito.
A veces no tenía gráfico y se congelaba el búfer de Python, otras veces obtenía el gráfico pero también el congelamiento.

Aquí hay una solución que funciona para mi. Tal vez pueda ser de ayuda (tal vez no).

Instale ipython (pip install ipython)
Instale matplotlib (pip install matplotlib)

Añada estas líneas a init.el

(when (executable-find "ipython")
  (setq python-shell-interpreter "ipython"))

Ejecute Emacs e ipython (M-x run-python)
Cargue matplotlib (import matplolib)
Verifique el uso de TkAgg backend (matplotlib.get_backend()). Qt no funciona para mi.
Si no es así, agregue esta línea a matplotlibrc
backend : TkAgg

El siguiente script ahora debe funcionar sin congelación (al menos, este es el caso para mi)

import matplotlib
matplotlib.get_backend()
import matplotlib.pyplot as plt
plt.ioff()
plt.plot([1,2,3,4])
plt.show()
print("Test")
Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en matplotlib, entiendo las dificultades de trazar gráficos utilizando Emacs y la biblioteca de matplotlib en Windows10. Sin embargo, hay una solución que ha funcionado para algunos usuarios.

    El primer paso es instalar ipython y matplotlib usando pip. Una vez instalados, agregue las siguientes líneas al archivo init.el:

    (when (executable-find "ipython")
      (setq python-shell-interpreter "ipython"))
    

    Después, ejecute Emacs e ipython escribiendo M-x run-python. Luego, cargue matplotlib escribiendo import matplotlib. Verifique el uso del backend TkAgg utilizando el comando matplotlib.get_backend(). Si no se especifica, agregue la siguiente línea en el archivo matplotlibrc:

    backend : TkAgg
    

    Esto debería garantizar que el script a continuación funcione sin problemas de congelación:

    import matplotlib
    matplotlib.get_backend()
    import matplotlib.pyplot as plt
    plt.ioff()
    plt.plot([1,2,3,4])
    plt.show()
    print("Test")
    

    Espero que esta solución ayude. Sin embargo, no todos los sistemas son iguales y algunos usuarios pueden seguir experimentando problemas. Si es así, puede ser necesario realizar más solución de problemas.

Comments are closed.