python & Django 環境構築手順
Ubuntu, CentOS 上に連続で環境構築をした時のメモ。Linux系は、ディストリビューションによって、結構ポリシーが違いますね(対象OSの新しさにもよりますが)。
ディストリビューション別の環境
今回、構築したのはこんな環境です。Djangoの管理を、何に任せるかは検討事項ですね。
Ubuntu 14.04
Pythonは、最初から2.7.x系をサポートしているので簡単。ポイントは、Djangoをどこで管理するかだけでしょうか?今回はDjango1.6.x系で大丈夫と考えて、apt-getで管理されているものを利用する事にしました。
SCLの導入(CentOSの場合)
Python2.7.x系を使う為に、「Software Collections」を利用します。RedHat社が、リリース後に追加対応する事を決めたパッケージ群を利用する為の仕組みで、既存パッケージとは異なりバージョン番号が付いているのが特徴。
導入後、python2.7系のパッケージが利用できるようになります。
$ yum list | grep scl | grep python27
$ sudo yum install python27
導入確認と利用テスト。
$ scl -l
python27$ ls /opt/rh/
python27
全ユーザー共通利用
参考サイトにあるように /etc/profile.d/ 配下にスクリプトを用意する事にしました。
pipの導入
次のワンライナーで、インストールできます。
curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
※get-pip.pyの安全性には、事前に配慮する必要はあります
pipの導入 w/SCL
ワンライナーでやったら、SCLのPythonを使わずに動作して良くわからなくなったので、一つずつ実行。
$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo -s
# python -V
Python 2.7.5
# python get-pip.py
こんな形になれば正しくインストールされているかと。
# which pip
/opt/rh/python27/root/usr/bin/pip
# which easy_install
/opt/rh/python27/root/usr/bin/easy_install
easy_install使わなくてもpip入れれるっていうのが、スムーズでいいなぁと思いました(get-pip内部でsetuptolsの判断はされているので関連はあるようです)。
Djangoの導入 pip w/SCL
source で設定したパスを sudo ではもっていかないようなので、こんな感じでインストールしました。
$ sudo -s
# python -V
Python 2.7.5
# pip install 'Django<1.7'
インストール確認
# pip freeze
...
Django==1.6.8
...
その他
SCL を使うと、使い勝手がけっこう変わりますね。defultのpythonは、uninstallした方が混乱がなさそうな気もするが、どうなんだろうか?sudo して、ちゃんと使う方法も、そのうち調べたい。