14
10

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.

CentOS7に最新版のPython3をInstallする方法

Last updated at Posted at 2021-05-01

Background

自作のHPで動かしているサーバOSはCentOS7と少し古いversionを使っています。それで今まではPython3.6だったのですが、asyncioの記述がシンプルになっているのとセイウチ構文をどこかで書いてみたいと思っていたのでPython3.9.4にアップデートかけてみました。

普通であれば yum install python3でインストールすればいいのですが、デフォルトだとpython3.6だったと思います。なのでここでは公式ページからソースファイルをダウンロードし、makeを使ってコンパイルしてpython3.9.4をインストールしようと思います。

Caution

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

  • CentOS7でのgccのバージョンは4.8
    • バージョン5以上でないとmakeでエラーになる
  • インストールした後にコマンドパスPATH、共有ライブラリパスLD_LIBRARY_PATHにパスを通す
  • ./configure の実行高速化パラメータ--enable-optimizations を使わない
    • 付けないときと比べて2倍から5倍の実行速度があるのですが付けるとエラーになります。
  • ./configure--enable-shared を付けないと pip3 install mod_wsgi するときにエラーになる。

Development

#必要なパッケージをインストール
yum groupinstall -y "Development Tools"
yum install -y kernel-devel kernel-headers bzip2-devel libdb-devel libffi-devel
yum install -y gdbm-devel xz-devel ncurses-devel readline-devel tk-devel uuid-devel openssl-devel

#zlibをインストール
wget http://zlib.net/zlib-1.2.11.tar.gz \
 && tar xvzf zlib-1.2.11.tar.gz \
 && cd zlib-1.2.11 \
 && ./configure \
 && make -j4 \
 && make install

#gccをインストール + 7系にスイッチ
yum install -y centos-release-scl
yum install -y devtoolset-7 && scl enable devtoolset-7 bash

# python3.9.4 をインストール
wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz \
 && tar xvzf Python-3.9.4.tgz \
 && cd Python-3.9.4 \
 && ./configure \
--with-ensurepip \
--enable-shared \
--enable-ipv6 \
--prefix=/usr/local/python3.9 \
 && make \
 && 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
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

14
10
1

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
14
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?