Oracle Linux 7 に Python 3.7 を入れたかった
Oracle Linux 7 に Python 3.7 系を入れたかったが、結構苦労したのでメモ。Oracle Linux は RedHat Enterprise Linux 系なので、RHEL や CentOS と同様の手順が採用できるはずだが…。
本稿執筆時点で、Yum で直接インストールできる Python は v3.6 系までだった。
- 参考 : CentOS7にPython3.7をインストール(ソースファイルからビルド) | Hornet|静岡拠点のWeb、ホームページ制作
-
2019年4月現在、Python3.7はソースファイルからビルドする方法でしかインストールできないようです。
-
- 参考 : いまさらながら、Python3.7をCentOS/RHEL 7に導入する。 - Qiita
- 参考 : CentOS7にPython3.7をインストールする - Narito Blog
ということで、Python v3.7 をソースからビルドしてインストールすることにしたが、make
のところで行われるユニットテストが途中で進まなくなり、インストールができなかった。
色々試したがどうにも成功しないので、直接 Python v3.7 を入れることは諦めた。代わりに、ベースとなる Python のバージョンは適当に決めておいて、pipenv などを経由して v3.7 を入れることにする。
Oracle Linux 7 の場合、以下に記載されているとおり、v3.6 なら最初から Yum でインストールできる。
$ yum install -y python3
コレで Python v3.6 が入り、pip3
コマンドも使えるようになる。
$ pip3 install pipenv
で pipenv を入れたが、
$ pipenv --python 3.7
といった要領で Python 本体をインストールできなかった。どうも別途 pyenv を入れないといけないようだ。
pyenv は以下の要領でインストールする。場合によるが、自分はもう root ユーザで作業することにしたので、root ユーザで実施した。
# ホームディレクトリ直下、.pyenv/ ディレクトリに pyenv の資材を落としてくる
$ git clone https://github.com/pyenv/pyenv ~/.pyenv
# 必要事項を .bash_profile に追記する
echo 'export PATH="${HOME}/bin:${PATH}"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
~/.bash_profile
には以下の内容を書いている。
export PATH="${HOME}/.pyenv/bin:${PATH}"
eval "$(pyenv init -)"
コレで pyenv が使えるようになったので、pyenv を使って Python v3.7 をインストールする。
$ pyenv install 3.7.5
$ pyenv global 3.7.5
$ pyenv rehash
# コレで v3.7.5 がインストールでき、アクティブになった
$ python -V
以降は pipenv を使う際も、ココでインストールした Python v3.7 を認識して $ pipenv install --dev
とかが動作するようになる。
うーん、なかなか Python は環境構築がしんどいな。やっぱ Docker で隠蔽しちゃうのが楽ね。