Tips とトリック¶
これは virtualenv と virtualenvwrapper をさらに使い易くするためにユーザが教えてくれた tips です。あなたが共有したい tip を持っているなら、私にメールを送ってもらうか、 このブログ にコメントをください。私はこのページにその tip を追加します。
zsh プロンプト¶
Nat からです。
zsh を使用して、アクティブな仮想環境をスクリーンの右側に表示するために $WORKON_HOME/post(de)activate
に少し追加しました。
postactivate
は次になります。
PS1="$_OLD_VIRTUAL_PS1"
_OLD_RPROMPT="$RPROMPT"
RPROMPT="%{${fg_bold[white]}%}(env: %{${fg[green]}%}`basename \"$VIRTUAL_ENV\"`%{${fg_bold[white]}%})%{${reset_color}%} $RPROMPT"
そして postdeactivate
は次になります。
RPROMPT="$_OLD_RPROMPT"
個人的な趣向や環境に応じて色を調整してください。
キャッシュされた $PATH
エントリを更新する¶
Nat からです。
さらに zsh は新たなパスをすぐに取得しない問題があったので $WORKON_HOME/postactivate
と $WORKON_HOME/postdeactivate
へコマンド ‘rehash’ も追加しました。
pip の virtualenv サポート¶
http://becomingguru.com/ からです。
virtualenvwrapper として virtualenvs のために pip が同じディレクトリを使用するようにログインシェルに次の内容を追加してください。
export PIP_VIRTUALENV_BASE=$WORKON_HOME
さらに Nat からです。
becomingguru が指摘したことに加えて次の行がキーになります。
export PIP_RESPECT_VIRTUALENV=true
それは -E パラメータを pip へ渡さずに pip がアクティブな仮想環境を検出してインストールします。
プロジェクトのワークディレクトリを作成する¶
James からです。
私は postmkvirtualenv
スクリプトでプロジェクト名に基づいてディレクトリを作成して、
Python パスへそのディレクトリを追加してからそこへ移動します。
proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}')
mkdir $HOME/projects/$proj_name
add2virtualenv $HOME/projects/$proj_name
cd $HOME/projects/$proj_name
私は postactivate
スクリプトで workon コマンドを使用するときに自動的にプロジェクトディレクトリへ移動するようにセットします。
proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}')
cd ~/projects/$proj_name
ディレクトリへ移動したときに自動的に workon を実行する¶
cd
を実行する毎にそのディレクトリでシェル環境を調べるように追加したコードを Justin Lily が投稿しました 。 .venv
ファイルを見つけたら、そのファイルに含まれる環境の名前でアクティブ化します。そのディレクトリから移動すると、カレントの仮想環境は自動的に非アクティブ化します。
Harry Marr は git リポジトリ で動作するよく似た機能を書きました。
新しい環境に共通ツールを自動的にインストールする¶
rizumu からです。
私はこの postmkvirtualenv
を基本的なセットアップを行うインストールに使用します。
$ cat postmkvirtualenv
#!/usr/bin/env bash
curl -O http://python-distribute.org/distribute_setup.p... />python distribute_setup.py
rm distribute_setup.py
easy_install pip==dev
pip install Mercurial
それから、私の開発ツールと共に pip の要求ファイルを持ちます。
$ cat developer_requirements.txt
ipdb
ipython
pastescript
nose
http://douglatornell.ca/software/python/Nosy-1.0.tar.gz
coverage
sphinx
grin
pyflakes
pep8
それぞれのプロジェクトは PIL, psycopg2, django-apps, numpy といったその独自の pip 要求ファイルを持ちます。