Ubuntu20.04に最新版のPython3をInstallする方法


Background

CentOS7に最新版のPython3をInstallする方法 のパート2。
ここではOSがUbuntu20.04だった場合のPython3.9.4をインストールする方法についてです。

Caution

注意点としては以下の通りです。

  • Ubuntu20.04でデフォルトでgccをインストールするとバージョンは9.3
  • インストールした後にコマンドパスPATH、共有ライブラリパスLD_LIBRARY_PATHにパスを通す
  • ./configure の実行高速化パラメータ--enable-optimizations は使える
  • ./configure--enable-shared を付けないと pip3 install mod_wsgi するときにエラーになる。
  • /usr/share/pyshared/lsb_release.pysite-packages にパスを通さないとpipでパッケージをインストールするときにエラーになる

Development


# 必要なパッケージをインストール
apt-get install -y wget build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

# gccをインストール
apt-get install -y gcc

# python3.9.4 をインストール
wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz \
 && tar xzf Python-3.9.4.tgz \
 && cd Python-3.9.4 \
 && ./configure \
 --with-ensurepip \
 --enable-shared \
 --enable-ipv6 \
 --prefix=/usr/local/python3.9 \
 --enable-optimizations \
 && make -j4 \
 && make altinstall

# パスを通す
ln -sf /usr/local/python3.9/bin/python3.9 /usr/bin/python3
ln -sf /usr/local/python3.9/bin/pip3.9 /usr/bin/pip3
ln -sf /usr/share/pyshared/lsb_release.py /usr/local/python3.9/lib/python3.9/site-packages/lsb_release.py
echo 'LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/python3.9/lib"' >> ~/.bashrc
echo 'PATH="$PATH:/usr/local/python3.9/bin"' >> ~/.bashrc
source ~/.bashrc

# pip をアップデート
pip3 install --upgrade pip

Reference