[arch-general] a plea for python 2

Juan Diego Tascón juantascon at gmail.com
Sat Dec 24 12:42:43 EST 2011


take a look at the kedpm PKGBUILD [1], the package have
/usr/bin/python as shebang, but if you run:

python2 setup.py

the script will automatically fix the shebangs to /usr/bin/python2
before installing

**
[1] https://aur.archlinux.org/packages/ke/kedpm/PKGBUILD

On Fri, Dec 16, 2011 at 5:30 AM, C Anthony Risinger <anthony at xtfx.me> wrote:
> On Thu, Dec 15, 2011 at 9:51 AM, Alex Bolgarov <alex at bolgarov.org> wrote:
>>> you all think the proper fix is for
>>> me to put in the docs something like "on Arch systems you need to do
>>> [x] before building", whether [x] is "get the PKGBUILD with the patch
>>> from AUR" or even "run the sed-python-with-python2.sh included in the
>>> distribution".
>>
>> I personally don't think it is a proper fix - I think it is not a fix
>> at all. My opinion is that Python3 is sufficiently different from
>> Python2 to be considered a new language, not just a new version of old
>> (thus it would be appropriate to use new name, 'python3', for it,
>> leaving 'python' forever referring to python2). (That is, desire to be
>> on the bleeding edge does not warrant breaking existing software)
>
> http://mail.python.org/pipermail/python-dev/2011-March/108562.html
>
> ... the thread starts here:
>
> http://mail.python.org/pipermail/python-dev/2011-March/108491.html
>
> ... if it hasn't been linked already.  that discussion led to the
> aforementioned PEP, and was generally well-received (hence creation of
> the PEP).
>
>> If I were you, I would probably stop putting shebangs into my Python
>> scripts (so that they would be not executables), and write a shell
>> wrapper script for every python script that figures out during runtime
>> how python2 executable is called, and call python2 script using this
>> python executables (or write single script with symbolic links to it
>> with different names and use $0 shell variable to find which python
>> script to call).
>
> you can factor out pieces into separate files and selectively import
> based on various criteria, like any other module.  create an small
> bootstrap file that is python2/3 compatible and either run/import
> according to the binary you're running under, or re-exec under a
> different one (slightly rude form a user's perspective, but possible).
>
> a little funky, but you can test syntax using eval:
>
> http://stackoverflow.com/questions/446052/python-best-way-to-check-for-python-version-in-program-that-uses-new-language-f/446061#446061
>
> ... and catch SyntaxError.
>
> per:
>
> http://mail.python.org/pipermail/python-dev/2011-March/108495.html
> http://mail.python.org/pipermail/python-dev/2011-March/108499.html
>
> ... not sure if that's changed, but Arch isn't alone ... there was an
> incubation period of a couple years, until 3.2 release, for
> applications/libraries to catch up.  python3 is here now, so let's
> give her a big welcome, and move on ;-)
>
> --
>
> C Anthony


More information about the arch-general mailing list