当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

Ubuntu预先安装了Python 2.7.2+。 (我还下载了python dev软件包。)由于我遇到的另一个问题(在How do I replace/update the version of the expat library used by Apache?中进行了深入解释),Graham Dumpleton告诉我,我的发行版已显式构建Python以使用外部pyexpat实现的方式,因此导致了问题。他还说,我可以自己用源代码构建Python来解决问题。我将如何在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. 然后依次安装makemake install以进行构建和安装:

    make && make install
    

如果您在途中遇到障碍,请在此处询问,我将尝试提供一些指导。

次佳方法

生成”hot”最新python(来自github)的最佳方法如下:

  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

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

以此构建了Python 3.8.0a0 (heads/master:077059e0f0, Aug 10 2018, 21:36:32)

第三种方法

您可以尝试使用pyenv。我还没有尝试过。但是从源头来看,在任何* ix-system上完成任何CPython-interpreter的安装似乎已经非常成熟。

第四种方法

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8865.html,未经允许,请勿转载。