Set default open-with app to a Python program on a Mac

Solution 1:

For your second question, according to How to associate the “.exe” extension to be opened with Mono?, you need an .app bundle:

Apparently, when using Finder's GUI, only .app files (application bundles) can be selected.

If that's true for Python scripts as well, then my answer at that question might help, with for Step 5:

5. Replace echo "$f" with python32 UliPad.py "$f"

So, in short, create an Automator "application" to run the following Shell script:

PYTHON=/Library/Frameworks/Python.framework/Versions/6.1/bin/python/
ULIPAD=/Users/vmd/Dropbox/Ulipad/UliPad.py
if [ $# -eq 0 ]
then
  # No parameters passed; just run it without any files:
  $PYTHON $ULIPAD
else
  # Run an instance for each file:
  for f in "$@"
  do
    $PYTHON $ULIPAD "$f"
  done
fi

...or maybe you can pass multiple files to UliPad.py in one go:

PYTHON=/Library/Frameworks/Python.framework/Versions/6.1/bin/python/
ULIPAD=/Users/vmd/Dropbox/Ulipad/UliPad.py
$PYTHON $ULIPAD "$@"

As for your first question: you should be able to use the same Automator "application" to just start UliPad without opening any file (if indeed you then just need to run it without any parameters, like I assumed above).