Cómo generar una trama reconocida por Cocoa usando matplotlib en Python en OS X (Leopard preferiblemente)

No estoy seguro exactamente de lo que está sucediendo bajo el capó, pero aquí está mi configuración, código de ejemplo y problema:

configuración:

  • leopardo de las nieves (10.6.8)
  • Python 2.7.2 (proporcionado por EPD 7.1-2)
  • iPython 0.11 (proporcionado por EPD 7.1-2)
  • matplotlib (proporcionado por EPD 7.1-2)

código de ejemplo:

import numpy as np
import pylab as pl
x=np.random.normal(size=(1000,))
pl.plot(x)

problema:

No puedo usar los accesos directos estándar de Mac OS X para acceder a la ventana generada por el comando plot.

Por ejemplo, no puedo Comando-lengüeta a la ventana. Por lo tanto, si la ventana está detrás de otra ventana, necesito ratón ¡a eso! Comando-W no lo cierra.

Evidentemente, esto es inaceptable. Parece que ejecutar Lion en lugar de Leopard podría solucionar este problema, pero aún no he actualizado. Siento que el problema tiene algo que ver con iPython que genera ventanas que no son completamente conscientes de Cocoa en algún sentido, pero realmente sé muy poco, por lo que no tengo mucha confianza en esta hipótesis.

Por lo tanto, cualquier idea sobre cómo resolver o sortear este problema será muy apreciada.

preguntado el 28 de agosto de 11 a las 00:08

Hola @jovo. ¿Alguna vez resolviste esto en Snow Leopard / Lion? Vi el comportamiento deseado (podría hacer Comando-Tab en la ventana de mi gráfico) cuando estaba en Snow Leopard, pero una computadora nueva con una pizarra limpia ha producido su problema. -

Estoy de acuerdo en que esto es extremadamente molesto, y también estoy buscando una solución, pero una solución es usar Expose (las ventanas aparecen allí)

2 Respuestas

De la descripción en el página de iPython, parece que Python usa Qt para generar UI. Esto significa que las ventanas que genera definitivamente no son ventanas Cocoa y no actuarán como ellas.

No es probable que haya una solución fácil para este problema.

Respondido 28 ago 11, 04:08

gracias, es una respuesta increíblemente útil. quizás un IDE diferente (como spyder: code.google.com/p/spyderlib) resolverá mis problemas. - jovo

Creo que tu mejor apuesta es usar PyObjC para crear una aplicación Cocoa usando Python. A continuación, generará una aplicación Cocoa real. - Rob Keniger

Experimenté la misma molestia con mi instalación Anaconda de Python 2.7.10 en Mac OS X Yosemite 10.10.5. Una solución que encontré fue cambiar el backend a Mac OS X o Qt4Agg creando un ~/.matplotlib/matplotlibrc archivo con la línea:

backend: MacOSX

or

backend: Qt4Agg

Ahora puedo acceder fácilmente a la ventana de trazado con el conmutador de aplicaciones usando Comando - lengüeta y ciérralo con Comando - W .

respondido 06 nov., 15:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.