我如何从Ubuntu上的源代码自己构建python?

时间:2011-11-11 16:43:18

标签: python linux ubuntu

Ubuntu预装了Python 2.7.2+。 (我还下载了python开发包。)由于我有另一个问题(在How do I replace/update the version of the expat library used by Apache?中进行了深入解释),Graham Dumpleton告诉我,我的发行版已经明确地构建了Python以使用外部pyexpat实现,所以导致我的问题。他还说我可以自己从源代码构建Python来解决这个问题。我如何在Ubuntu上执行此操作? (请记住,我是Linux的新手。)

5 个答案:

答案 0 :(得分:39)

  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
    
  6. 如果你在途中遇到障碍,请回到这里,我会尝试提供一些指导。

答案 1 :(得分:25)

构建" hot"的最佳方式最近的python(来自github)如下:

length(quote)<250
AND used IS NULL
OR used > now()::date - 365

-- should be
length(quote)<250
AND (used IS NULL
     OR used > now()::date - 365)

它从github上的源代码构建最近的python。

有了这个,我建立了 sudo apt-get update \ && sudo 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-generic 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 \ && sudo make install

答案 2 :(得分:5)

您可以尝试使用pyenv。我还没有尝试过。但是看看这些消息来源,在任何* ix系统上完成任何CPython解释器的安装似乎都非常成熟。

答案 3 :(得分:2)

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

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

答案 4 :(得分:0)

您可以使用checkinstall从源代码进行安装,而不是进行make install。

下载源代码后,导航到主文件夹并使用以下命令

./configure
make
sudo checkinstall

这将创建一个debian / RPM软件包,然后进行安装。 Checkinstall保留所有文件修改和依赖项的选项卡,并使整个卸载过程更容易。由于您具有.deb软件包,因此在许多系统上安装和使用软件包管理器进行操作要容易得多。

来源:Checkinstall - install from source code