Python 3.12をCentOS 7にインストールする方法

PYTHON3 チュートリアル

Python 3.10以降でpipを使うにはOpenSSL 1.1が必要ですが、古いCentOS 7ではOpenSSL 1.1がデフォルトで入っていません。また、Python 3.10や3.12を使うにはソースコードからインストールする必要があります。以下は、SSL対応を確保しながらPython 3.12をインストールする方法です。

環境

  • CentOS Linux release 7.8.2003 (Core)
  • gccはデフォルトのまま

OpenSSL 1.1のインストール

管理者権限で以下のコマンドを実行します。

# CentOS 7でepel-releaseを使うようにする
yum install epel-release

# 開発ツールと依存パッケージをインストール
yum groupinstall "development tools"
yum install bzip2-devel gdbm-devel libffi-devel libuuid-devel ncurses-devel \
  openssl11 openssl11-devel readline-devel sqlite-devel xz-devel \
  zlib-devel tk-devel --enablerepo=epel

Python 3.12のインストール

依存パッケージのインストール

yum -y install gcc zlib-devel libffi-devel bzip2-devel \
ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel \
libuuid-devel readline-devel

Python 3.12のソースコードダウンロードと解凍

cd /usr/src
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
tar xvf Python-3.12.0.tar.xz
cd Python-3.12.0

ビルドとインストール

# tkinterを使用したい場合
export TCLTK_LIBS="-ltk8.5 -ltkstub8.5 -ltcl8.5"

# OpenSSL 1.1.1の設定
export CPPFLAGS="$(pkg-config --cflags openssl11)"
export LDFLAGS="$(pkg-config --libs openssl11)"

# configure処理
./configure --prefix=/opt/python3.12 --enable-ipv6 \
--enable-loadable-sqlite-extensions --with-system-ffi --with-lto \
--enable-optimizations

# ビルドとインストール
make -j8
make altinstall

インストール確認

/opt/python3.12/bin/python3.12 --version

SSLモジュールの確認

/opt/python3.12/bin/python3.12 -m pip install --upgrade pip
/opt/python3.12/bin/python3.12
>>> import ssl

エラーが出なければ成功です。以上でPython 3.12がCentOS 7にインストールされました。

購読
通知
0 Comments
Inline Feedbacks
View all comments