tinauser <tinau...@libero.it> writes: > On Oct 11, 6:49 pm, Chris Rebert <c...@rebertia.com> wrote: >> On Mon, Oct 11, 2010 at 6:16 AM, tinauser <tinau...@libero.it> wrote: >> > hi there, >> > i need to embed python GUI in a c++ code. I've seen that,while on >> > windows running GUI is no problem, in mac i need to use pythonw >> > instead python. >> > the question is,how should i tell the program that if the OS is mac, >> > it should pythonw, otherwise python is fine? >> >> I think you have it backwards. MS Windows is where one typically needs >> to use pythonw to suppress a console window from opening when Python >> is run. *nixes (including Mac OS X) have no such problem and (I'm >> pretty sure) only have a pythonw executable for compatibility >> purposes. Just specify pythonw regardless of OS and you should be >> fine.
This is not entirely true, there is a difference on the mac, see below. >> >> Cheers, >> Chris >> --http://blog.rebertia.com > > thanks: > how do i specify pythonw programmatically? > i tried Py_SetProgramName("pythonw"); > > it doesn't raise errors, but does not solve the problem on mac, i.e. i > get the error: > > This program needs access to the screen. > Please run with 'pythonw', not 'python', and only when you are logged > in on the main display of your Mac. I'm not sure that's your problem. It is not about the *name* of the program. It is about Python being a Framework build. Which the ones that come with OSX are, and if you link against them that's enough. However, you are writing your *own* binary program, and I guess that's the problem. I don't know without further research why there is a difference between commandline and GUI-programs in OSX (I guess it has to do with the event loop or something), but I think your umbrella program is the real culprit here. If it's not a proper GUI program (whatever that exactly means), delegating rendering of a GUI to Python will trigger that code that spits out your above error message. Diez -- http://mail.python.org/mailman/listinfo/python-list