Debian Linux 编译安装Python
Python 现在是一门流行的编程语言,使用十分广泛。但是有时候一些代码需要较高版本的Python才能运行,而我们系统自带的Python版本比较低,如Debian 10 官方仓库的的Python版本是3.7, Debian 11是Python 3.9,在这种情况下我们就需要安装新版本的Python。或者有时候我们想只是想体验新版本的Python的一些新特性。假设不需要多环境管理,如果需要配置多个Python环境则建议使用conda或pyenv等工具。
准备
编译Python需要安装编译工具以及一些依赖库
apt-get install build-essential pkg-config zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev uuid-dev tk-dev libgdbm-compat-dev liblzma-dev
下载
Python的源码可以从官方网站下载:https://www.python.org/downloads/source/
官方说3.11性能得到了较大提升,因此我们以3.11.6为例
首先下载源码并解压
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
tar zxf Python-3.11.6.tgz
cd Python-3.11.6
编译
接下来就是编译源码的部分了,编译时间长短取决于机器性能。注意安装使用altinstall,避免破坏系统安装的Python
./configure --prefix=/usr/local/python3.11 --enable-optimizations --with-lto --with-computed-gotos --with-system-ffi
make
make altinstall
安装
由于系统一般是自带了Python的,因此我们不希望直接覆盖原来的以避免产生一些问题,我们使用系统的工具来管理多个版本
update-alternatives --install /usr/bin/python python /usr/local/python3.11/bin/python3.11 3
update-alternatives --install /usr/bin/pip pip /usr/local/python3.11/bin/pip3.11 3
至此,我们的Python就安装配置完了。这里有一键脚本
apt-get install -y build-essential pkg-config zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev uuid-dev tk-dev libgdbm-compat-dev liblzma-dev
cd /usr/local/src
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
tar zxf Python-3.11.6.tgz
cd Python-3.11.6
./configure --prefix=/usr/local/python3.11 --enable-optimizations --with-lto --with-computed-gotos --with-system-ffi
make
make altinstall
update-alternatives --install /usr/bin/python python /usr/local/python3.11/bin/python3.11 3
update-alternatives --install /usr/bin/pip pip /usr/local/python3.11/bin/pip3.11 3