【Linux】CentOS7にPython3.6をインストールして標準のPythonにする

Linux
スポンサーリンク

備忘録です。

 

スポンサーリンク

目的

pythonで遊びたいので仕事中に検証と偽ってCentOS7にpythonをインストールする。

あと、デフォルトではpython2.7あたりが使われているので、それも切り替える。

ついでにpipもインストールする。

 

インストール手順

Pythonのインストール

まずはインストールできる最新のPythonを探します。

今回はyumでインストールするのでyum searchで確認。

ソースインストールは世代管理がクソめんどくさいのであんまりやりたくないです。

# yum search python

python36-cairo-devel.x86_64 : Libraries and headers for python36-cairo
python36-greenlet-devel.x86_64 : C development headers for python36-greenlet
python36-psycopg2-tests.x86_64 : Test suite for python36-psycopg2
boost-python36.x86_64 : Shared object symbolic links for Boost.Python 3
boost-python36-devel.x86_64 : Shared object symbolic links for Boost.Python 3
boost-python36-static.x86_64 : The Python3 Boost C++ static development libraries
libpeas-loader-python36.x86_64 : Python 36 loader for libpeas
python36.x86_64 : Interpreter of the Python programming language
<以下略>

昔はIUSのレポジトリしかPython36をインストールできなかったようですが、現在(2019年4月)ではepelに普通に入っています。

ので何も考えずにyumインストールします。

# yum install python36


依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ python36.x86_64 0:3.6.6-5.el7 を インストール
--> 依存性の処理をしています: python36-libs(x86-64) = 3.6.6-5.el7 のパッケージ: python36-3.6.6-5.el7.x86_64
--> 依存性の処理をしています: libpython3.6m.so.1.0()(64bit) のパッケージ: python36-3.6.6-5.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ python36-libs.x86_64 0:3.6.6-5.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
=============================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
インストール中:
python36 x86_64 3.6.6-5.el7 epel 66 k
依存性関連でのインストールをします:
python36-libs x86_64 3.6.6-5.el7 epel 8.5 M
トランザクションの要約
インストール 1 パッケージ (+1 個の依存関係のパッケージ)
総ダウンロード容量: 8.6 M
インストール容量: 36 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): python36-3.6.6-5.el7.x86_64.rpm | 66 kB 00:00:00
(2/2): python36-libs-3.6.6-5.el7.x86_64.rpm | 8.5 MB 00:00:00
合計 20 MB/s | 8.6 MB 00:00:00

<中略>


インストール:
python36.x86_64 0:3.6.6-5.el7
依存性関連をインストールしました:
python36-libs.x86_64 0:3.6.6-5.el7
完了しました!

簡単~~

というわけで、pythonがアップデートされたか確認してみる。

# python --version

Python 2.7.5

あるぇー?(・3・)

 

標準で使用するPythonの切り替え

$ ls -l /bin/python

lrwxrwxrwx 1 root root 14 4月 19 14:24 /bin/python -> /bin/python2.7

そりゃそうなるわな。

というわけでリンクを張り替えちゃいます。

# ln -snf /bin/python3.6 /bin/python
# ls -l /bin/python

lrwxrwxrwx 1 root root 14 4月 19 14:24 /bin/python -> /bin/python3.6
python --version

Python 3.6.6

おっけー

 

yumが使えないことへの対処

上記したリンク張り替えを実施すると、yumが使用できなくなる。

参考サイト

yumを神と崇め奉るyum信者としてはいただけない状態です。

というわけで、それも解消していきましょう。

# vi /bin/yum

(変更前)
#!/usr/bin/python

(変更後)
#!/usr/bin/python2

無理やりpython2.7を使うように変更します。

あと、これだけではなくyumで使用しているライブラリのほうもいじらないといけないらしいのでそれも変更

# vi /usr/libexec/urlgrabber-ext-down

(変更前)
#!/usr/bin/python

(変更後)
#!/usr/bin/python2

これでyumが使えるようになります。

ただ、あくまでもこれはyumを使えるようにしただけ。

ほかの何かが使えなくなってしまっている可能性があるため、それは今回のように都度直していきましょう。

 

pipのインストール

最後にpipをインストールします。

pythonを使う理由のほぼすべてを担ってますね。

pythonの強みはパッケージの多さ。

何かやりたいなーと思った時に、ググればだいたいパッケージがあります。

ただ、いちいち自分でパッケージをダウンロードして、インストールして、というのはとてもめんどくさい。

そんなめんどくさい作業をpipはすべて管理してくれます。

というわけで、早速インストールしていきましょう。

# cd /usr/local/src
# wget wget https://bootstrap.pypa.io/get-pip.py
# python piget-pip.py


Collecting wheel
Downloading https://files.pythonhosted.org/packages/96/ba/a4702cbb6a3a485239fbe9525443446203f00771af9ac000fa3ef2788201/wheel-0.33.1-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel

終わり。簡単。

 

ちなみに、こんなエラーが出るときがあります。

Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 101] ネットワークに届きません',)': /simple/pip/

外部のネットワークに接続できず、インストールパッケージをダウンロードできていないので、外に出れるようにしておきましょう。

よくやりがちなのは、wgetとかyumとかのプロキシ設定はしていたけど、環境変数$http_proxyとかに設定していなかった場合とか。

というかそれで引っ掛かりました。

 

というわけで以上です。

これでpythonで遊べるぞーーーーーーーーー

 

 

 

コメント

タイトルとURLをコピーしました