我如何从Ubuntu的源代码自己构buildpython?

Ubuntu预装了Python 2.7.2+。 (我也下载了python开发包)。由于我遇到了另一个问题( 如何replace/更新Apache使用的expat库的版本,我深刻的解释了这个问题 ),Graham Dumpleton告诉我,我的发行版已经明确地build立Python的方式来使用外部pyexpat实现,所以造成我的问题。 他还说,我可以从源代码自己构buildPython来解决这个问题。 我将如何做到这一点在Ubuntu上? (请记住,我是Linux新手。)

  1. 在shell提示符下(在终端中),运行

    sudo apt-get install build-essential 

    这将获取你需要建立任何东西的所有常用软件包(例如编译器等)。

  2. 然后运行

     sudo apt-get build-dep python2.7 

    这将获取您需要构建python的所有库。

  3. 然后下载python的源代码并将其解压缩到一个目录中。

  4. 去那里跑

     ./configure --prefix=/path/where/you/want/python/installed 
  5. 然后make ,然后make install以获取它的内置和安装:

     make && make install 

如果您在路上遇到困难,请回到这里,我将尽力提供一些指导。

你可以尝试使用pyenv 。 我还没有尝试过。 但是从源头上看,在任何* ix系统上安装任何CPython解释器似乎已经非常成熟。

建立“热”非常新的Python(从github)最好的方法如下:

  sudo apt-get update \ && apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev libncurses5-dev libbz2-dev liblzma-dev \ libsqlite3-dev libffi-dev tcl-dev linux-headers-amd64 libgdbm-dev libreadline-dev tk tk-dev git clone https://github.com/python/cpython.git cd cpython && ./configure --prefix=/usr \ --enable-loadable-sqlite-extensions \ --enable-shared \ --with-lto \ --enable-optimizations \ --with-system-expat \ --with-system-ffi \ --enable-ipv6 --with-threads --with-pydebug --disable-rpath \ && make \ && make install 

它从github上的源码构建了最新的python。

有了这个我已经建立了Python 3.7.0a0 (heads/master:60a6632a3d, Aug 5 2017)

自己构建Python的优秀解决方案是pythonbrew ,它可以自动执行这个过程,并且不仅可以安装多个不同的版本,还可以轻松地在它们之间进行选择。

在2016年,pyenv和PyRun是最可行的解决方案。