[Python-Dev] Binary CPython distribution for Linux

Joseph Martinot-Lagarde joseph.martinot-lagarde at m4x.org
Thu Jun 26 21:23:10 CEST 2014


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



More information about the Python-Dev mailing list