普段思ったことや、雑記。

Menu & Search

【pyenv+virtualenv】CentOS7.1とCentOS6.6にPythonの開発環境をセットアップする

2015年10月6日

色々あってPythonが必要になったので、セットアップのメモ。個人で管理しているサーバをそろそろCentOS6.6からCentOS7へ変えていきたいので、ちょうど良い機会と思い、CentOS6.6とCentOS7.1の両環境でのPythonの開発環境のセットアップを試してみた。なお、この記事はセットアップに関するもので、使い方については他を参照することとしたい。

 

pyenvのインストール

まずは、下記のソフトウェアをインストールする。

yyuu/pyenv

https://github.com/yyuu/pyenv

これは何をするものかというと、マシンに同時に複数の異なるバージョンのPythonをインストールし、使えるようにするものだ。バージョンマネージャと呼ばれる分類のソフトウェアだ。というわけでインストールをしてみる。基本的には、上記のGithubにあるやり方で進める。さくっとターミナルで打つコマンドの手順を書いていく。

CentOS7.1の場合

CentOS6.6の場合

最終行の、

でpyenvのバージョン情報が表示されれば、pyenvは正しくインストールされている。これができていないと次に進めない。

さて、こうしてみるとCentOS7.1のほうが管理者権限にてインストールするパッケージ自体が少なくてスッキリしている感じがする。まあ、実際にこうしてやりたいことを異なるOSバージョンで打ってみると違いが分かるというもの。注意としては、CentOS6.6では初期状態では、意外と入っていそうでgitがインストールされていないので、それは強調しておく。ちなみに、CentOS7.1とCentOS6.6で、ともにpatchというパッケージをインストールしたが、これは別に新しいバージョンのPythonだけを使いたい場合は不要である(Python 3.5.0では不要であった)。確認したところ、Python 2.7.10のインストールではpatchのパッケージがない場合はエラーが出てインストールができないことが確認できている。

 

【オマケ】pyenv設定の別なやり方

pyenvの開発者の方が、システムレベルでソフトウェアをインストールしなくても依存関係をクリアしてPythonをインストールできる、それはとても便利なスクリプトを公開している。それがこちら。

yyuu/pyenv-installer

https://github.com/yyuu/pyenv-installer

オマケなので、依存関係のためのパッケージが多いCentOS6.6で試してみた。pyenvがインストールされるまで、わずかこれだけである(エディタの記入内容で行数が増えているように見えるが、実際は少ない)。

システムレベルでなく、依存関係をクリアするって何やっているんだろう?と思い、スクリプトの中身を覗いてみた。何やら開発者が作成したpyenv向けのプラグインをいくつか同時にセットアップしている様子しか見られなかった。そうすることで依存関係をクリアしているのだろうか?このあたりはもっとちゃんとみないといけないので、興味のある方はスクリプトの中身を見てみると良いと思う。あとは、通常通りの依存関係をクリアしてセットアップしたpyenvとの動作の違いについては、pyenv-installerのやり方では、通常の依存関係を解消した場合よりも少しターミナルのコマンド入力直後の応答速度が落ちた気がする。なので、通常のインストールができるのであれば、通常通りシステムレベルで依存関係を解消するほうが良いかもしれない。ちなみに、こちらのインストールスクリプトは、Githubのスター数が2015年10月6日時点だと、173で、pyenvの3151と比べるとだいぶ少ないので、さほど労力でもないし、あまり選ぶ意味はないかもしれない。どちらかというと、サーバ操作がよく分からない人向けで、さっさとPythonを使えさえすれば良いという場合はおそらくは用途としてハマるやり方だ。あとは考えられるとしたら、管理者権限に制約がある環境で、gitがインストールされている場合とか。

 

virtualenvをインストールする

次に開発ごとにpythonにインストールされているパッケージ環境自体を切り替えるために、virtualenvをインストールする。

Virtualenv — virtualenv 13.1.2 documentation

https://virtualenv.pypa.io/en/latest/index.html

こちらは、OS別でコマンドは異なることはない。以下にコマンドを示す。

virtualenvをインストールするには、pyenvにて、何かしらのバージョンのPythonをインストールし、global(対象ユーザのシステム全体)に設定しておく必要がある。ここでは、3.5.0をインストールし、globalに設定した。もし、他のバージョンをインストールしたい場合は

と入力して、pyenvがインストール可能なPythonバージョンを表示して、

とすればよい。

 

感想

Pythonのセットアップというより、Vagrantの環境に感動した(Vagrantで構築して手順をおこしてた)。作っては壊す、はなかなかにこういったチュートリアル作成には便利だ。あとは、pyenvは俗言うなんとかenv系のソフトウェアだ。今回、pyenvを調べている時に、anyenvという、Python,Ruby,Node.js,Go…など多彩な言語に対応したバージョンマネージャを発見したので、ちょっと試してみたいなあと思った。最近は、Node.js,Perl,Python,Rubyあたりがなんらかの機会で使うタイミングがあるので、ハマれば面白いかもしれない。

mmiyauchi

プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。

Related article
HTTP/HTTPSリクエスト向け負荷テストツールのVegetaがとても良かった

HTTP/HTTPSリクエスト向け負荷テストツールのVegetaがとても良かった

仕事で負荷テスト担当…

WordPress公式コンテナのError establishing a database connection(データベース接続確立エラー)の修復

Error esta…

Vagrant(Virtualbox)のデータベースへ、設定が正しくてもSequel proで接続できない場合の対処

ある時からふと、Se…

Discussion about this post

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Type your search keyword, and press enter to search
%d人のブロガーが「いいね」をつけました。