最新のPythonをシステムワイドにインストールする方法

Pythonは日々新しいものが出ているが、CentOSなどでは若干古い。

最新のOSを使えば良いわけだがそうはならない状況はある。

そこでPythonをインストールするわけだが、
PythonはLinuxの各ディストロで中心的なアプリの動作に関わっており、さすがにぜんぶ入れ替えを行うわけにはいかない。

通常のPythonは2.7を呼び出し、たとえばPython3_4というコマンドを打つことによって最新のPython3.4を呼び出すようにしたい。

Pyenvというpython実行環境をインストールするツールがあるが、それはユーザーごとの実行環境をインストールまでで、
どのユーザーも指定のコマンドを実行することにより新しいPythonを呼び出すということは出来ない。

要件

今までのPythonを壊さないで、新しいPythonをインストールする。(例 Python3_4コマンドで新しいPython3.4を呼び出す。)

どのユーザーでも同じ実行環境を呼び出す『システムワイド性』

検証環境

CentOS 6.5 (vagrant使用)

使うツール

Pyenv
git

手順

Pyenvのインストール

ここで公開されているpyenvのインストールを行えば間違いは無いので、以下割愛

http://qiita.com/yuta_h3/items/2988c4d0811bf8c344c0

ちなみにpyenvをインストールしたディレクトリは
vagrantユーザーという一般ユーザーの
~/.pyenv/
とする

 

python-buildのインストール

pyenvにはPythonをビルドするためのプラグイン、Python-buildがついてくる。
github経由でインストールすれば必ずついてくるみたいだ。

ただし、そのままだと使えないので、スタンドアローンで使えるようにインストールをする必要がある。

rootユーザーにて実行

 cd /home/vagrant/.pyenv/plugins/python-build/
 ./install.sh

と実行すると、python-buildコマンドが使用できる

Pythonのインストール

次にPythonのインストールを行う。

rootユーザーにて実行

python-build 3.4.2 -v /usr/local/python3_4

-vオプションをつければ今何の処理中かわかるからお勧め。
つけないとフリーズしてんのかインストールしてんのか解んなく生る。

インストールディレクトリは任意のフォルダにしていいが、被らないように注意。
例では/usr/local/python3_4

 

次にシンボリックリンクを追加。

rootユーザーにて実行

ln /usr/local/python3_4/bin/python /usr/local/bin/python3_4 -s

 

Pyenvでインストールするとpipも付いているので、pipのシンボリックリンクも追加しておこう。
rootユーザーにて実行

ln -s /usr/local/python3_4/bin/pip /usr/local/bin/pip3_4

 

 

検証

まず、バージョン確認

一般ユーザーにて実行(コメント部分は実行した結果)

python3_4 -V #Python 3.4.2
pip3_4 -V  # pip 1.5.6 from /usr/local/python3_4/lib/python3.4/site-packages (python 3.4)

最新のバージョンが表示されたらOK

その次にpipで何かをインストール(例ではウェブマイクロフレームワークflaskで実施)
rootユーザーにて実行

 pip3_4 install flask

さらに、pipでインストールしたものをimport(対話環境による実施)
一般ユーザーにて実行(>>部分はpythonの対話モード)

$ python3_4
>> import flask
>>

エラー無くimportできれば環境構築完了

 

スポンサードリンク

関連コンテンツ