How to specify Python version in script?

Benjamin Kaplan benjamin.kaplan at case.edu
Wed Nov 11 13:39:17 EST 2009


On Wed, Nov 11, 2009 at 1:28 PM, Javier Collado
<javier.collado at gmail.com> wrote:
> Hello,
>
> If you are working on linux, you can change the shebang line from:
> #!/usr/bin/python
>
> to:
> #!/usr/bin/python2.6
>
> Best regards,
>    Javier
>
> P.S. If you just want to avoid python 3 while running the latest
> python 2.x version, this should also work:
> #!/usr/bin/python2
>

True, except that it doesn't meet the OP's requirements. The OP wanted
to be able to specify a range of versions. The problem with changing
the shebang line is that there's no way to say "python 2.5 or 2.6 or
2.7"

Regardless, it's much better to do #!/usr/bin/evn python2.6 instead of
hard-coding the path because not everyone has their interpreter in the
same spot. I have the Macports python 2.6.4 installed in
/opt/local/bin and I'd get kind of annoyed if a script, insisted on
using the 2.6.1 that came with the system, especially if it depends on
3rd party libraries.

> 2009/11/11 Benjamin Kaplan <benjamin.kaplan at case.edu>:
>> On Wed, Nov 11, 2009 at 12:16 PM, kj <no.email at please.post> wrote:
>>>
>>>
>>>
>>>
>>> I have a script that must be run with Python 2.6.x.  If one tries
>>> to run it with, say, 2.5.x, *eventually* it runs into problems and
>>> crashes.  (The failure is quicker if one attempts to run it with
>>> Python 3.x.)
>>>
>>> Is there some way to specify at the very beginning of the script
>>> the acceptable range of Python versions?
>>>
>>
>> min_version = (2,6)
>> import sys
>> if sys.version_info < min_version :
>>   print >> stderr, "must be run with at least Python 2.6"
>>   sys.exit(1)
>>
>>
>>> TIA!
>>>
>>> kynn
>>>
>>> P.S. I know that I can hardcode the path to a specific intpreter
>>> in the #! line, but I'm trying to keep the code a bit more general
>>> than that.
>>> --
>>> http://mail.python.org/mailman/listinfo/python-list
>>>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>



More information about the Python-list mailing list