Max OS X. When I double-click on a python script it opens in the default editor. How might I make it so that when I double-click, or choose the script from Applications, it executes from the python interpreter? From the "open with" option it does not appear that I can choose /usr/bin/python.
3 Answers
- Start up Automator
- Choose application
- In the Actions bar, select Library, and search for Shell
- Drag "Run Shell Script" to the right pane.
- Change pass input to "as arguments"
Change the script to
for f in "$@" do python "$f" done
Save it (possibly in the application folder, but can be anywhere) as Python.app
Now if you want .py files to always launch with python:
- Select a .py file
- File -> Get Info
- In the Open with selection, choose Other, and select the Python.app you created.
- Click Change All
-
1
-
1:-/ unfortunately it's simply not working... I have no idea why. Any step having python run a script simply has automator say the Run Shell Script failed, with no description of what went wrong. Jul 24, 2013 at 13:17
-
step 6 of the accepted answer needs to be formatted correctly to work for f in "$@" do python "$f" done Apr 23, 2016 at 6:53
I suggest you install the latest version of Python (not the one installed on Mac OS X as of Mountain Lion). It includes PythonLauncher that does just what you want.
- Install the latest version of Python (download)
- Run "Update Shell Profile.command" (in Applications/Python 2.7) to make sure python is in your shell's PATH
- Select a .py file
- File -> Get Info
- In the Open with selection, choose Other, and select the PythonLauncher app (in Applications/Python 2.7)
- Click Change All
Seems like it would be easier to just fire up the terminal and type "python /path-to-script/scriptname"? If not, there's apparently a way to get Apple script to do this, according to this stack overflow post: https://stackoverflow.com/questions/14793391/easy-way-to-launch-python-scripts-with-the-mouse-in-os-x
In either case, you'll need to know the full path to the script.
-
For the problem I am trying to solve it isn't easier but yes, I could execute the script from the terminal. Thanks for the info. May 9, 2013 at 4:49