2012-04-30 25 views
9

Używam Enthought Python Distribution (7.2, 64-bit). Pochodzi bez wxPython (co jest dość ważne). Jednak wxPython-2.9 wydaje się obsługiwać 64-bitowy interfejs Cocoa, więc spróbowałem. Właściwie wszystko poszło dobrze: poleceniewxPython 2.9 na Mac Os X

z powodzeniem skompilowało się, a nawet dostało pakiety EPD site. jednak prosty kod wxPython

import wx 
wx.App() 

nie powiedzie się z powodu następującego błędu:

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. 

Czy możesz dać mi jakieś rady jak to leczyć? EPD to oczywiście Python Framework (tzn. Spojrzenie na /Library/Frameworks/EPD64.framework i /Library/Frameworks/Python.framework mnie w tym przekonuje), ale ta kompilacja wxPython o tym nie wie. Wersja wxPython jest 2.9.3.1

+0

Czy ktoś znalazł rozwiązanie tego problemu? – Mike

+0

Nie sądzę. Przestawiłem się na PySide, który działa dobrze na moje potrzeby. –

+0

Czy instalacja PySide jest prosta dla EPD64 na OSX 10.7? – Mike

Odpowiedz

1

Użycie skryptu otoki jak to powinno konfiguracja środowiska w taki sposób, że wxPython działa poprawnie:

#!/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]" 

Wystarczy zrzucić go w pliku, nadać mu uprawnienia i wykonywalny użyj go do uruchomienia aplikacji wxPython zamiast pliku wykonywalnego Pythona.

+0

Czy możesz wyjaśnić, jak działa to rozwiązanie i dlaczego wystąpił problem, w pierwszej kolejności używając wxPython 2.9 z EPD? – Mike

+0

To rozwiązanie nie działa dla mnie. Ustawienie PYTHONHOME nie zmieniło komunikatu o błędzie podanego w pierwotnym pytaniu. – Mike

+0

@Mike To rozwiązanie też nie działa dla mnie. Używa Pythona firmy Apple, który nie jest językiem EPD. –

2

To dlatego, że instalujesz wxpython z pytonem systemowym. więc można po prostu zmodyfikować lub cokolwiek inny punkt główny main.py projekt zdefiniowany, dodać na czele tak:

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

a następnie uruchomić z /usr/bin/python

+0

Dzięki za pracę dla mnie! –

0

używam dystrybucji Pythona Anaconda i napotkał ten sam problem, jak opisałeś. Mianowicie: "Ten program wymaga dostępu do ekranu: Proszę uruchomić z kompilacją Framework Pythona, i tylko wtedy, gdy jesteś zalogowany na głównym ekranie Maca." Nie wiem, czy moje rozwiązanie mogłoby ci pomóc, ponieważ ustawienie jest inne, ale możesz spróbować.

Oto sposób mogę rozwiązać ten problem:

Krok 1: zainstalować pythonw (używam polecenia „Conda zainstalować python.app”, ale jestem pewien Enthought musi użyć innego polecenia)

Krok 2: Uruchom plik .py z pythonw zamiast python.

Mam nadzieję, że to pomaga.