Skip to content

Instantly share code, notes, and snippets.

@garsue
Created May 14, 2012 07:26
Show Gist options
  • Save garsue/2692454 to your computer and use it in GitHub Desktop.
Save garsue/2692454 to your computer and use it in GitHub Desktop.
Pythonの環境構築

Pythonの環境構築

前提

  • python3をメインで使用する。
  • Unix環境を想定。Windows環境はCygwin使うなりVM使うなりするほうが楽。 (しかしMSYSは検討する価値がある。)
  • ユーザー権限で完結することを目指す。

インストールディレクトリについて

easy_installおよびpipを使ってインストールする際に--userオプションをつけることでユーザー権限でインストールすることができる。 多くの環境でホームディレクトリに.localディレクトリが作成される。

もし作成されなければsite.USER_BASEを確認する。 参照: 27.14. site — サイト固有の設定フック — Python documentation

$HOME/.local以下にbin, lib, share等が作成され、各種Pythonパッケージが適宜インストールされる。

ここでは筆者の環境(Mac OS X 10.7.4にhomebrewで入れたpython3.2.3)でインストールされたパスをそのまま書くため、 環境に応じて適宜読み替える

方針

virtualenvおよびvirtualenvwrapperを使い、環境を切り替えながら開発していく。

原則的にpython3を使用し、python2への対応はtoxで行う(すなわちテスト必須)。 python2のみで開発する場合は2の環境を作成し、その環境下で行う。

インストールプロセス

distributeのインストール。easy_install, pipと同様に$HOME/.local以下にインストールするため--userオプションをつける。:

curl -O http://python-distribute.org/distribute_setup.py
python3 distribute_setup.py --user

pipのインストール。:

~/.local/bin/easy_install --user pip

virtualenvwrapperのインストール。virtualenvも同時に入る。 パスは筆者の環境のもの 。:

~/.local/bin/pip install --user virtualenvwrapper

virtualenvwrapperの設定。以下を.bashrcに追記する。 パスは筆者の環境のもの 。:

export VIRTUALENVWRAPPER_PYTHON=$HOME/.local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=$HOME/.local/share/python3/virtualenv
export WORKON_HOME=$HOME/.virtualenvs
source $HOME/.local/share/python3/virtualenvwrapper.sh

.bashrcの再読み込み。:

source ~/.bashrc

以上でvirtualenvwrapperのインストールは完了。以降メインで使用していく環境を作成していく。

メイン環境の作成

ここでは'3.2.3'という名前で環境を作成する。:

mkvirtualenv py3

以上で基本的な環境構築は完了。環境を有効化するときはworkon py3を行う。 詳細はvirtualenvwrapperの公式ドキュメントを参照。

便利な設定

pipの補完機能を有効にする。以下はbashを利用している場合。参照: Relationship with other tools — pip 1.1.post1 documentation:

pip completion --bash >> ~/.bashrc

python2用の環境を作成。python2では明示的にdistributeを使用するように指定する必要がある。:

mkvirtualenv -p python2 --distribute py2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment