[arch-general] simple trick to make dealing with python 2/3 scripts easier

Ben Booth benwbooth at gmail.com
Fri Aug 17 14:09:06 EDT 2012


Lots of python scripts still use #!/usr/bin/python instead of explicitly 
stating which version of python to use. Here's quick trick to make running 
various python version 2 or 3 scripts easier:

remove the /usr/bin/python symlink and replace with this shell script:

#!/usr/bin/env bash
exec /usr/bin/"${PYTHON:-python3}" "$@"

Now you can set the PYTHON environment variable to be either python2 or 
python3, depending on which version of python the script expects. Just don't 
set PYTHON=python, or you'll get a recursive loop! The only problem with 
this approach is that /usr/bin/python is owned by the python package, so if 
you upgrade the python package it might create problems. Any one know of 
some way to work around this problem?



More information about the arch-general mailing list