日々適当

hibitekitou

Python環境の構築メモ

mac |2016-03-29
いや、OS標準の環境でやればいいんだけどね。El Capitanになってちょっと不便になったんで※。
UNIX系のソフトウェアを管理するパッケージマネージャとして最近はHomebrewが主流なんでしょうか。というわけで、これを導入します。ワンラインのスクリプトをターミナルにコピペでインストールとはなかなかに手軽ですね。
インストールが終わったら、何か問題がないか brew doctor コマンドを実行してみますと
Your XQuartz (2.7.7) is outdated(てめーのXQuartzは時代遅れだ) だから最新を落として入れろとか、まさにPythonについての問題が指摘されたりとか(/LibraryにOS標準のPythonは入っているからHomebrewから利用できない※とか)、/usr/local/includeにあるもんが問題起こす可能性があるから削除した方がいいよとか言われました。まさに新規にPythonを入れるためにHomebrewをいじるので、これらメッセージはおおむね問題はないですね。

というわけでインストールします。一応

brew update

を走らせてパッケージ一覧を更新しておいて

brew install python

でインストールです。これで /usr/local/bin/python にPythonが入りました。ついでにPython3も入れちゃいます。

brew install python3

インストールしようとしているソフトの情報を得ようと思ったら brew info [ソフト名] だそうです。

便利なライブラリ、pipを入れます。

sudo easy_install pip

んで、virtualenvを入れます。virtualenvはPythonの仮想環境を作るためのライブラリだそうです。プロジェクトごとに仮想環境を構築してライブラリの依存関係がごちゃごちゃになることを防ぐ目的のようですね。

sudo pip install virtualenv virtualenvwrapper

virtualenvwrapperを入れることで各環境の切り替えを簡単になるそうです。
ちなみに、easy_installで入るpipのバージョンがちょい古いようで、
You are using pip version 8.0.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
とか言われました。んで、アップグレードしています。


virtualenvが作成する環境が入る場所を作ります。

mkdir ~/.virtualenvs

で、ログインシェル(.bashrc)に以下を記述です。参考(Virtualenvwrapperの導入

if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
fi

一応、.bash_profileに以下の記述があるかも確認しときます。

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

同じターミナルのシェル上で作業を続行するなら source .bash_profile を実行しときます。
以上で環境を作成する準備が出来たので、仮想環境作成を行っていきます。env0 という名前の環境を作ります。

mkvirtualenv --python=/usr/local/bin/python env0

Python 3の環境を作りたかったら、pythonのパスをpython3のパスにしてやればいいです(/usr/local/bin/python3)。環境作成が成功するとその環境に入ってます(プロンプトが (env0) XXX:xxx$ になってる)。環境から出るときは

deactivate

を実行です。環境に入るときは workon 環境名 なので

workon env0

となります。 workon ってコマンドは単独で使うと作成された環境の一覧を表示するそうです。
環境を削除する場合は、環境から出た上で rmvirtualenv 環境名 ですね。

rmvirtualenv env0

これで削除されます。

というわけで作成したenv0の中にモジュールをインストールしていきます。

(env0)$: pip install pyproj
(env0)$: pip install pyshp

まぁつまり仮想環境内で環境構築作業をしていけばいいってことですね。
以上、普通の人は他のページを参考にしたほうがいいけど、個人的なメモでした。


El Capitanから導入されたSystem Integrity Protection (SIP)(通称 Rootless)のせいでございます。これ自体はいいことなんでしょうけど、困ったことも起こるわけです。
コメント ( 0 )|Trackback ( )
  ・