2012-04-30 59 views
9

Tôi đang sử dụng Phân phối Python Enthought (7.2, 64-bit). Nó đi kèm mà không có wxPython (mà là khá quan trọng). Tuy nhiên, wxPython-2.9 dường như hỗ trợ giao diện Cocoa 64 bit, vì vậy tôi đã thử nó. Trên thực tế, tất cả đều tốt: lệnhwxPython 2.9 trên Mac Os X

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

biên dịch thành công và thậm chí đưa vào gói trang web EPD. Tuy nhiên, một mã wxPython đơn giản

import wx 
wx.App() 

không thành công với các lỗi sau:

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. 

Bạn có thể cho tôi một số lời khuyên làm thế nào để chữa bệnh này? EPD rõ ràng là một Khung Python (tức là, xem /Library/Frameworks/EPD64.framework và /Library/Frameworks/Python.framework thuyết phục tôi trong đó) nhưng bản xây dựng wxPython này không biết về điều đó. Các phiên bản của wxPython là 2.9.3.1

+0

Có ai tìm thấy giải pháp cho vấn đề này chưa? – Mike

+0

Tôi không nghĩ vậy. Tôi chuyển sang PySide mặc dù, mà làm việc tốt cho nhu cầu của tôi –

+0

PySide cài đặt đơn giản cho EPD64 trên OSX 10.7? – Mike

Trả lời

1

Sử dụng một kịch bản wrapper như thế này nên thiết lập môi trường của bạn theo cách như vậy mà wxPython hoạt động chính xác:

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

Chỉ cần đổ nó trong một tập tin, cung cấp cho nó cho phép thực thi và sử dụng nó để khởi chạy ứng dụng wxPython của bạn thay vì thực thi python.

+0

Bạn có thể vui lòng giải thích về cách giải pháp này hoạt động và tại sao có một vấn đề ở nơi đầu tiên bằng cách sử dụng wxPython 2.9 với EPD? – Mike

+0

Giải pháp này không hiệu quả đối với tôi. Đặt PYTHONHOME không thay đổi thông báo lỗi được đưa ra trong câu hỏi gốc. – Mike

+0

@Mike Giải pháp này cũng không hiệu quả với tôi. Nó sử dụng Apple Python mà không phải là EPD. –

2

Đó là vì bạn cài đặt wxpython bằng python hệ thống. vì vậy bạn chỉ có thể thay đổi hoặc bất cứ điểm chính khác main.py dự án của bạn được xác định, thêm ở phần đầu như sau:

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

và sau đó chạy với /usr/bin/python

+0

Cảm ơn nó làm việc cho tôi! –

0

tôi sử dụng phân phối trăn Anaconda và gặp cùng vấn đề như bạn mô tả. Cụ thể, "Chương trình này cần truy cập vào màn hình. Vui lòng chạy với một khung xây dựng của python, và chỉ khi bạn đang đăng nhập trên màn hình chính của máy Mac của bạn." Tôi không biết liệu giải pháp của tôi có thể giúp bạn vì cài đặt khác nhau hay không nhưng bạn có thể thử.

Dưới đây là cách tôi giải quyết vấn đề này:

Bước 1: cài đặt pythonw (Tôi sử dụng lệnh "conda cài đặt python.app", nhưng tôi chắc chắn Enthought phải sử dụng lệnh khác nhau)

Bước 2: Khởi chạy tệp .py với pythonw thay thế python.

Hy vọng điều đó sẽ hữu ích.