Le 26/06/2014 20:34, Gregory Szorc a écrit :
I'm an advocate of getting users and projects to move to modern Python
versions. I believe dropping support for end-of-lifed Python versions is
important for the health of the Python community. If you've done any
amount of Python 3 porting work, you know things get much harder the
more 2.x legacy versions you need to support.

I led the successful charge to drop support for Python 2.6 and below
from Firefox's build system. I failed to win the argument that Mercurial
should drop 2.4 and 2.5 [1]. A few years ago, I started a similar
conversation with the LLVM project [2]. I wrote a blog post on the
subject [3] that even got Slashdotted [4] (although I don't think that's
the honor it was a decade ago).

While much of the opposition to dropping Python <2.7 stems from the RHEL
community (they still have 2.4 in extended support and 2.7 wasn't in a
release until a few weeks ago), a common objection from the users is "I
can't install a different Python" or "it's too difficult to install a
different Python." The former is a legit complaint - if you are on
shared hosting and don't have root, as easy as it is to add an alternate
package repository that provides 2.7 (or newer), you don't have the
permissions so you can't do it.

This leaves users with attempting a userland install of Python.
Personally, I think installing Python in userland is relatively simple.
Tools like pyenv make this turnkey. Worst case you fall back to
configure + make. But I'm an experienced developer and have a compiler
toolchain and library dependencies on my machine. What about less
experienced users or people that don't have the necessary build
dependencies? And, even if they do manage to find or build a Python
distribution, we all know that there's enough finicky behavior with
things like site-packages default paths to cause many headaches, even
for experienced Python hackers.

I'd like to propose a solution to this problem: a pre-built distribution
of CPython for Linux available via www.python.org in the list of
downloads for a particular release [5]. This distribution could be
downloaded and unarchived into the user's home directory and users could
start running it immediately by setting an environment variable or two,
creating a symlink, or even running a basic installer script. This would
hopefully remove the hurdles of obtaining a (sane) Python distribution
on Linux. This would allow projects to more easily drop end-of-life
Python versions and would speed adoption of modern Python, including
Python 3 (because porting is much easier if you only have to target 2.7).

I understand there may be technical challenges with doing this for some
distributions and with producing a universal binary distribution. I
would settle for a binary distribution that was targeted towards RHEL
users and variant distros, as that is the user population that I
perceive to be the most conservative and responsible for holding modern
Python adoption back.

[1]
http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/68902
[2] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056545.html
[3]
http://gregoryszorc.com/blog/2014/01/08/why-do-projects-support-old-python-releases/

[4]
http://developers.slashdot.org/story/14/01/09/1940232/why-do-projects-continue-to-support-old-python-releases

[5] https://www.python.org/download/releases/2.7.7/

Just today I installed Anaconda (https://store.continuum.io/cshop/anaconda/) on Linux servers running CentOS 6.4. It installs in a directory anywhere in the filesystem (no need to be root), and using it globally is just a matter of prepending a folder to the PATH and it was done.

Of course Anaconda is oriented towards scientific applications but it is a proof that a pre-build binary installer works and can be simple to use.

If someone wants to try it without all scientific libraries they provide Miniconda (http://conda.pydata.org/miniconda.html) which contains only python and the python package manager conda.

Joseph

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to