如何在Ubuntu上从源代码自行编译Python?

45 投票
5 回答
52812 浏览
提问于 2025-04-17 06:08

Ubuntu系统自带了Python 2.7.2+。我还下载了Python的开发包。因为我遇到了另一个问题(在这个链接里详细解释了),Graham Dumpleton告诉我,我的系统版本的Python是特别配置过的,使用了一个外部的pyexpat实现,这导致了我的问题。他还说我可以自己从源代码编译Python来解决这个问题。那么在Ubuntu上我该怎么做呢?(请记住,我对Linux还很陌生。)

5 个回答

6

你可以试试 pyenv。我还没试过这个工具。不过从它的资料来看,感觉它已经很成熟,可以在任何类Unix系统上安装任何版本的CPython解释器。

46

构建最新的“热”版本的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, 2018年8月10日, 21:36:32)

57
  1. 在终端的命令行中,输入

    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
    

如果在过程中遇到问题,可以在这里问我,我会尽量提供一些帮助。

撰写回答