avoiding long paths to interpreter
Robin Munn
rmunn at pobox.com
Fri Jan 10 08:34:49 EST 2003
Erik Max Francis <max at alcyone.com> wrote:
> holger krekel wrote:
>
>> Probably right, although one could try putting the below into
>> a file:
>> ------------------------------------------------------------
>> #!/bin/sh
>>
>> # find a specific python version you want to use from
>> # e.g. scanning PATH contents
>> # but i am far too lazy to write shell scripts now
>> # so i shortcut :-)
>> python=/usr/bin/python
>>
>> $python <<__HERE__
> ...
>
> But this is precisely what env does in the first place, so you might as
> well just left the bangpath alone.
>
> My point was not that using the (very common, and widely recommended)
> bangpath
>
> #!/usr/bin/env python
>
> won't work, it's just that which Python interpreter it finds depends on
> the PATH (because that is precisely what env does). If you have
> multiple intepreters installed, then you may get unpleasant surprises if
> you're relying on finding a particular one, since PATHs will vary widely
> from interactive shell to cron job to CGI script.
If you're dependent on a particular version of Python, then it makes the
most sense to simply check sys.version_info as soon as possible, and
exit gracefully with an appropriate error message, e.g.:
import sys
if sys.version_info < (2,2): # Require at least Python 2.2
sys.stderr.write("Sorry, I require at least Python 2.2.\n")
sys.stderr.write("Current version: %s\n" % (sys.version_info,))
sys.exit(1)
# Version-specific code goes here
--
Robin Munn <rmunn at pobox.com>
http://www.rmunn.com/
PGP key ID: 0x6AFB6838 50FF 2478 CFFB 081A 8338 54F7 845D ACFD 6AFB 6838
More information about the Python-list
mailing list