2013-04-01 2 views
1

У меня есть EPD 7.3 и установлены wxPython 2.9 через репозитории Enthought. Я попытался запустить Winpdb, который требует WxPython и я получил это сообщение:Запуск wxPython 2.9 на OS X 10.8 (64 бит)

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. 

Я видел подобные сообщения от WxPython на Mac, но я не нашел решение еще. Кто-нибудь знает об этом сообщении? И кто-нибудь получил WinPDB для работы с OS X 10.8 w/wxPython 2.9?

ответ

3

Это сообщение об ошибке произойдет, когда Python, используемый для запуска сценария wxPython, не является полной каркасной сборкой. OSX требует, чтобы приложения, которым предоставляется полный доступ к экрану, запускались из набора приложений или являлись частью структуры.

Обычно все Pythons являются фреймворками в эти дни, и нет необходимости беспокоиться об этом больше, однако есть одна ситуация, в которой это проблема, и это связано с виртуальными или подобными инструментами. С тем, что virtualenv построен, Python, который вроде бы теряет связь с каркасом, из которого он исходит, и поэтому его использование напрямую вызывает механизм безопасности, а код wx не может получить полный доступ к экрану. Если у вас возникла проблема в virtualenv, тогда я написал обходное решение здесь: http://wiki.wxpython.org/wxPythonVirtualenvOnMac

Хм ... Я просто пошел проверять это с помощью EPD, и я обнаружил, что исполняемый файл «python», который они предоставляют, а не интерфейсом для двоичного кода Python.app, как в обычных построениях фреймворков, а скорее как обычный unixy Python. Поскольку я сейчас в Enthought, я попрошу ответственные стороны, если это ошибка или она предназначена, но пока вы можете обойти это, изменив, какой Python выполняется. Например, вы могли бы создать «pythonw» псевдоним в вашей Баш оболочки, что указывает на двоичный Python.app, как это:

alias pythonw=/Library/Frameworks/EPD64.framework/Versions/7.3/Resources/Python.app/Contents/MacOS/Python 

Тогда вы должны быть в состоянии запустить Winpdb или другие приложения WxPython с помощью pythonw вместо питона.

+0

Похоже, что в моей установке Enthought Canopy 1.4 нет установленной Framework, для которой я мог бы использовать псевдоним. См. Мой вопрос о [Запуск winpdb изнутри Enthought Canopy на MacOS 10.9.2] (http://stackoverflow.com/questions/23566181/running-winpdb-from-within-enthought-canopy-on-macos-10-9- 2) –

+0

И см. Мой ответ там также для обновленного обходного пути, а также ссылки на статью Enthought KB. Это будет исправлено в версии 1.4.1. – RobinDunn