2
3

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 5 years have passed since last update.

RHSCLでのPythonのバージョン切り替え

Last updated at Posted at 2019-08-29

 前置き

Python2.x系から3.x系にあげる際に、yumなどpython2.x系に依存したパッケージソフトがあると、該当のパッケージソフトが使用できなくなるケースがある。

Python2.7がインストールされているCentOSに対して、
RHSCLを使用して複数のPythonを共存させ、Pythonのバージョンを2.x系→3.x系へ切り替える手順について、記載する。


RHSCL (Red Hat Software Collections) とは

CentOS向けの比較的バージョンの新しい安定版のパッケージソフトを集めたソフトウェア集。

RHEL/CentOSは、企業向けなので、
提供するパッケージを頻繁にアップデートするのではなく、特定のバージョンのパッケージを長期間に提供する、というポリシーがある.

そのため、提供されているパッケージが古い。

RHSCLは、RHEL/CentOSで提供しているパッケージより新らしく、なおかつ安定しているバージョンのパッケージソフトを利用することができる。

また、RHSCLからインストールしたパッケージソフトは、/usr/libではなく、/opt/rh配下にインストールされ、
環境変数PATHの切り替えによって、
利用するパッケージソフトのバージョンを切り替えることができる。

そのため、Python2.x(既存パッケージソフト)と、Python3.x(RHSCL)との共存なども可能。


Pythonバージョン切り替え

RHSCLのインストール

下記の手順で、SCLおよびPythonをインストールする。

$ yum install centos-release-scl-rh  scl-utils
$ yum install rh-python36


Pythonのバージョン切り替え

方法1 : 現在のシェルのPythonバージョンを変更


# 環境変数の値を変更
$ source /opt/rh/rh-python36/enable

# 変更された環境変数を表示
$ env | egrep "^PATH=|^LD_LIBRARY_PATH=|^MANPATH=|^XDG_DATA_DIRS=|^PKG_CONFIG_PATH=" | sort

LD_LIBRARY_PATH=/opt/rh/rh-python36/root/usr/lib64:/usr/local/lib
MANPATH=/opt/rh/rh-python36/root/usr/share/man:
PATH=/opt/rh/rh-python36/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PKG_CONFIG_PATH=/opt/rh/rh-python36/root/usr/lib64/pkgconfig
XDG_DATA_DIRS=/opt/rh/rh-python36/root/usr/share:/usr/local/share:/usr/share

# Pythonのバージョンが変更されたことを確認
$ python -V
Python 3.6.1

$ which python
/opt/rh/rh-python36/root/usr/bin/python

新しいシェルを起動し、新しいシェルのPythonのバージョンを切り替える


# 新しいシェルを起動し、環境変数を変更
# scl enable 'コレクション名 '‘コマンド’の形式で実行
$ scl enable rh-python36 bash

# 変更された環境変数を表示
$ env | egrep "^PATH=|^LD_LIBRARY_PATH=|^MANPATH=|^XDG_DATA_DIRS=|^PKG_CONFIG_PATH=" | sort

LD_LIBRARY_PATH=/opt/rh/rh-python36/root/usr/lib64:/usr/local/lib
MANPATH=/opt/rh/rh-python36/root/usr/share/man:
PATH=/opt/rh/rh-python36/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PKG_CONFIG_PATH=/opt/rh/rh-python36/root/usr/lib64/pkgconfig
XDG_DATA_DIRS=/opt/rh/rh-python36/root/usr/share:/usr/local/share:/usr/share

# Pythonのバージョンが変更されたことを確認
$ python -V
Python 3.6.1

$ which python
/opt/rh/rh-python36/root/usr/bin/python

# 元のシェルに戻る
$ exit

# バージョンが元に戻っていることを確認

$ which python
/usr/bin/python

$ python -V
Python 2.7.5
2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?