Python3のインストール

Pythonバージョン3は文法に後方互換性がない。システム全体にインストール済みのバージョン2系がある場合は、それは残しておく。バージョン2系のパッケージやコマンドの名前はただのpython、バージョン3の場合はpython3などと区別して利用できる。

パッケージ管理システムのリポジトリにpython3パッケージがあればすぐインストールできる。他に、ソースからビルドする方法、Dockerのpythonイメージを利用する方法もある。

端末を開いて作業する。


LinuxディストロのPython

Ubuntu, Debian

近年のUbuntuやDebianでは、パッケージ管理システムのリポジトリにpython3パッケージがある。

CentOS7

CentOS7のデフォルトのリポジトリではバージョン2系なので、追加のリポジトリを利用するか、ソースからビルドする。


CentOS7: ソースからビルド

依存パッケージ

まず必要なパッケージ(Development Toolszlib-developenssl-devellibffi-devel(Python3.7から))をこちらはyumコマンドでシステム全体にインストールする。

# 管理者権限で
# コンパイラgccなどが含まれる開発ツールパッケージグループ。
yum groups install "Development Tools"
# うまくいかないならこれらも
# yum groups mark install "Development Tools"
# yum groups mark convert "Development Tools"

# python3やpip3で最低限必要なパッケージ。
yum install zlib-devel openssl-devel libffi-devel

# その他オプション・モジュール有効にするなら。
yum install bzip2-devel readline-devel sqlite-devel xz-devel gdbm-devel tk-devel

依存パッケージを入れたらソースからビルドへ。


Python3をソースからビルド

ユーザのホームディレクトリ以下に、ユーザ権限で、Python3のソース(例: 最新版3.6.5(XZ compressed source tarball))からビルド・インストールする例。予め依存パッケージを入れておかないとエラーになる。

ビルド

# インストール先の例
target=$HOME/local/python3
# インストール先に移る
mkdir -p $target; cd $target

# ダウンロード
url=https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
curl -LO $url
# 展開
tar --extract --xz --file Python-3.6.5.tar.xz
ls
Python-3.6.5  Python-3.6.5.tar.xz

# インストール
# エラーが出るなら足りない依存パッケージをインストールしてやり直す。
cd Python-3.6.5
./configure --prefix=$target || echo 'エラー'
# 数分?時間かかる
make && make install || echo 'エラー'
# エラーと出なければ成功

PATH変数にパス追加

インストール先にできたbin/ディレクトリにコマンドが入っているので、PATH変数に追加してどこからでもコマンドを実行できるようにする。

# インストール先の例
target=$HOME/local/python3

# パス追加
PATH=$target/bin:$PATH
# 今回のパスを優先したくないなら(以降同様)
# PATH+=:$target/bin

# manマニュアルも利用できるように
MANPATH=$target/share/man:$MANPATH

# 次回以降のシェル端末でも有効化のため、~/.bashrcに追記
echo "PATH=$target/bin:\$PATH" >> ~/.bashrc
echo "MANPATH=$target/share/man:\$MANPATH" >> ~/.bashrc

CentOS7: EPELリポジトリからインストール

ソースからのインストールがうまくできない場合などは、EPELリポジトリからPython3をシステム全体にインストールする。

まずEPELリポジトリ(epel-releaseパッケージ)をインストールする。

yum install epel-release

ここで、EPELリポジトリをデフォルトでは無効にしておきたいなら、設定ファイル/etc/yum.repos.d/epel.repoenabledを書き換えておく。

[epel]
# 0で無効に
enabled=0

EPELリポジトリからpython36-develパッケージ(バージョン3.6)をインストールする。コマンドはpython3.6になっている。

yum --enablerepo=epel install python36-devel

type python3.6
python3.6 は /usr/bin/python3.6 です

Ubuntu: python3パッケージをインストール

Ubuntu16.04や18.04にはpython3パッケージがあるので、インストール済みでなければ、

sudo apt install python3

Ubuntu18.04: ソースからビルド

依存パッケージ

依存パッケージをパッケージ管理システムからapt build-depコマンドでまとめてインストールする例。

まずコマンドに必要な作業をする。「ソフトウェアとアップデート」画面を出し(Superキーで「アクティビティ」画面 → 「software」で検索)、「Ubuntuのソフトウェア」タブの「ソースコード」にチェックを入れる(/etc/apt/sources.listを編集している)。ビルド完了したら戻してもいい。

# 情報更新してから
sudo apt update

# Python3.6のビルドに最低限必要なパッケージ。
sudo apt build-dep python3.6

依存パッケージを入れたらソースからビルドへ。


Dockerのpythonイメージ

Dockerをインストール済みなら、Dockerの公式イメージpython:3からコンテナを作成してPython3を利用する方法もある。

# コンテナのシェル起動
docker run --rm -it --name test python:3.6 bash

バージョン確認

python3 --version
Python 3.6.5

pythonコマンドとバージョン

末尾に数字の付かないpythonコマンドはバージョン2系の場合がある(CentOS7など)。

type python
python は /usr/bin/python です
ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7  9月 24 11:34 /usr/bin/python -> python2

Python3が前提の当サイトではpython3コマンドで表記する。


pip3コマンドとvirtualenvコマンド

pip3のインストール

上記のようにインストールしたPython3本体とは別に、外部ライブラリを利用することがある。外部ライブラリはpip3コマンドでインストールするのが便利。ソースからビルドした場合などはpip3が含まれているが、もし入っていないならpip3自体のインストールへ。

pip3 --version

Python仮想環境virtualenvのインストール

外部ライブラリにも各バージョンがあり、開発ケースごとに依存バージョンが異なるなどの衝突を避けるため、Python仮想環境virtualenvを利用すると便利。Python仮想環境virtualenvへ。

virtualenv --version