Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to specify Python version in script?

341 views
Skip to first unread message

kj

unread,
Nov 11, 2009, 12:16:43 PM11/11/09
to

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?

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.

David Robinow

unread,
Nov 11, 2009, 12:33:25 PM11/11/09
to pytho...@python.org
> --
> http://mail.python.org/mailman/listinfo/python-list
>
sys.version ? sys.version_info ?

Benjamin Kaplan

unread,
Nov 11, 2009, 1:18:39 PM11/11/09
to pytho...@python.org
On Wed, Nov 11, 2009 at 12:16 PM, kj <no.e...@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
>

Javier Collado

unread,
Nov 11, 2009, 1:28:37 PM11/11/09
to Benjamin Kaplan, pytho...@python.org
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

2009/11/11 Benjamin Kaplan <benjami...@case.edu>:


> On Wed, Nov 11, 2009 at 12:16 PM, kj <no.e...@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
>

Benjamin Kaplan

unread,
Nov 11, 2009, 1:39:17 PM11/11/09
to pytho...@python.org
On Wed, Nov 11, 2009 at 1:28 PM, Javier Collado
<javier....@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 <benjami...@case.edu>:
>> On Wed, Nov 11, 2009 at 12:16 PM, kj <no.e...@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.

kj

unread,
Nov 11, 2009, 3:19:00 PM11/11/09
to

>On Wed, Nov 11, 2009 at 12:16 PM, kj <no.e...@please.post> wrote:
>>
>>
>>
>>

>> I have a script that must be run with Python 2.6.x. =A0If one tries


>> to run it with, say, 2.5.x, *eventually* it runs into problems and

>> crashes. =A0(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 =3D (2,6)


>import sys
>if sys.version_info < min_version :
> print >> stderr, "must be run with at least Python 2.6"
> sys.exit(1)

Thanks!

kynn

Yinon Ehrlich

unread,
Nov 12, 2009, 3:13:52 AM11/12/09
to
> Is there some way to specify at the very beginning of the script
> the acceptable range of Python versions?

sys.hexversion,
see http://mail.python.org/pipermail/python-list/2009-June/185939.html

-- Yinon

kj

unread,
Nov 14, 2009, 6:28:02 AM11/14/09
to

>sys.hexversion,
>see http://mail.python.org/pipermail/python-list/2009-June/185939.html

Cool. Thanks.

kynn

0 new messages