« Running Python scripts inside Xcode | Main | Using TextEdit as your EDITOR »

February 21, 2004

Running scripts in pythonw from Xcode

The previous tip works fine if your Python script is just a command-line script that doesn't require any interaction with the WindowServer. However, if your script needs to be run with pythonw normally in order to interact with the user in a GUI fashion, it won't work. Xcode won't let you select /usr/bin/pythonw as the executable because it is just a shell script, not a binary executable. To work around this, use /bin/sh as the executable and pass pythonw and your python file as arguments to sh:

Choose Project->New Custom Executable
Type /bin/sh as the Executable Path
Double-click on the new executable
Click the plus button under Arguments and type:
/usr/bin/pythonw /path/to/your/script/here.py

Update: Bob has pointed out in a comment that you can use the executable that the pythonw script runs directly. I have tested it and it seems to work for me. Set the executable path to:

/System/Library/Frameworks/Python.framework/Versions/2.3/Resources/Python.app/Contents/MacOS/Python

And the arguments to the path of your script. Thanks Bob!

Posted by Donovan at 10:12:49


Comments

Why not use /System/Library/Frameworks/Python.framework/Versions/2.3/Resources/Python.app/Contents/MacOS/Python? I'm not entirely sure gdb would work properly if you did it the sh way (but it might).

Posted by: Bob Ippolito on February 21, 2004 10:44 AM


Much to my surprise, simply using

#!/usr/bin/env /usr/bin/pythonw

(without any file-specific arguments) is enough to make a pythonw-needing script work. I stumbled across this while experimenting with your suggestion here...

Posted by: Mark Eichin on February 21, 2004 04:57 PM


Leave a Comment