2012-04-30 20 views
9

Estoy usando Enthought Python Distribution (7.2, 64-bit). Viene sin wxPython (que es bastante importante). Sin embargo, wxPython-2.9 parece ser compatible con la interfaz Cocoa de 64 bits, así que lo intenté. En realidad, todo salió bien: el comandowxPython 2.9 en Mac Os X

python build-wxpython.py --osx_cocoa --mac_framework --install 

se compiló con éxito, e incluso llegó a los paquetes de sitio EPD. Sin embargo, un simple código de wxPython

import wx 
wx.App() 

falla con el siguiente error:

This program needs access to the screen. 
Please run with a Framework build of python, and only when you are 
logged in on the main display of your Mac. 

¿Me puede dar algunos consejos cómo curar esto? EPD es claramente un Framework de Python (es decir, mirando /Library/Frameworks/EPD64.framework y /Library/Frameworks/Python.framework me convence) pero esta versión de wxPython no lo sabe. La versión de wxPython 2.9.3.1 es

+0

¿Alguien ha encontrado una solución a este problema todavía? – Mike

+0

No lo creo. Sin embargo, cambié a PySide, que funciona bien para mis necesidades –

+0

¿La instalación de PySide es sencilla para EPD64 en OSX 10.7? – Mike

Respuesta

1

El uso de un guión envoltorio como éste debe configurar su entorno de una manera tal que wxPython funciona correctamente:

#!/bin/bash 

# Real Python executables to use 
PYVER=2.7 
PYTHON=/Library/Frameworks/Python.framework/Versions/$PYVER/bin/python$PYVER 

# Figure out the root of your EPD env 
ENV=`$PYTHON -c "import os; print os.path.abspath(os.path.join(os.path.dirname(\"$0\"), '..'))"` 

# Run Python with your env set as Python's PYTHONHOME 
export PYTHONHOME=$ENV 
exec $PYTHON "[email protected]" 

Justo lo descarga en un archivo, darle permiso de ejecución y Úselo para iniciar su aplicación wxPython en lugar del ejecutable de python.

+0

¿Puede explicar cómo funciona esta solución y por qué hubo un problema al usar wxPython 2.9 con EPD? – Mike

+0

Esta solución no funcionó para mí. El establecimiento de PYTHONHOME no cambió el mensaje de error dado en la pregunta original. – Mike

+0

@Mike Esta solución no funcionó para mí también. Utiliza el Apple Python que no es el EPD. –

2

Es porque instala wxpython con el sistema python. lo que sólo puede modificar el o lo que el otro punto principal main.py su proyecto definido, añadir a la cabeza como el siguiente:

import site 
site.addsitedir("/Users/jazz/.pyenv/versions/py27/lib/python2.7/site-packages/") 

y luego correr con /usr/bin/python

+0

¡Gracias, funciona para mí! –

0

utilizo la distribución pitón anaconda y se encontró con el mismo problema como describiste A saber, "Este programa necesita acceso a la pantalla. Por favor, ejecute con una versión Framework de python, y solo cuando esté conectado al en la pantalla principal de su Mac". No sé si mi solución podría ayudarlo ya que la configuración es diferente, pero puede intentarlo.

Aquí es la manera puedo solucionar este problema:

Paso 1: instalar pythonw (yo uso el "Conda instalar python.app" de comandos, pero estoy seguro de Enthought debe utilizar el comando diferente)

Paso 2: Inicie el archivo .py con pythonw en lugar de python.

Espero que ayude.