0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?