如何在Ubuntu上从源代码自行编译Python?
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
在终端的命令行中,输入
sudo apt-get install build-essential
这条命令会下载你需要的常用软件包,比如编译器等,帮助你构建任何东西。
接着输入
sudo apt-get build-dep python2.7
这条命令会下载构建Python所需的所有库。
然后下载Python的源代码,并把它解压到一个文件夹里。
进入这个文件夹后,输入
./configure --prefix=/path/where/you/want/python/installed
然后输入
make
,再输入make install
,这样就可以完成构建和安装:make && make install
如果在过程中遇到问题,可以在这里问我,我会尽量提供一些帮助。