Python Tips: Sublime Text 2 で virturalenv 環境の Python を使いたい

Sublime Text 2 で Python のコードを書いていると、ショートカット( Ctrl+bCommand+b )で走る Python を指定したいことがあります。

今回はその例として virtualenv 環境の Python を使う方法を紹介します。

Python.sublime-build ファイルを編集します。

Python.sublime-build:

{
  // "cmd": ["python", "-u", "$file"],
  "shell": true,
  "cmd": ["path/to/virtualenv/bin/activate && python -u \"$file\""],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}

デフォルトの設定は、コメントアウトしてある最初の「 cmd 」の行です。それをコメントアウトし、新たに「 shell 」というプロパティを追加、「 cmd 」プロパティを再設定します。

&& python 」の前の「 path/to/virtualenv/bin/activate 」の部分に利用したい virtualenv 環境を読み込むコマンドを記述します。

ポイントは、デフォルトでは cmd の値は複数の要素を持つ配列になっているのですが、変更後はひとつの文字列だけを持つ配列に収める、というところです。他のシェルは試していませんが、 Bash の場合は複数の要素を持つ配列にするとうまく動いてくれませんでした。

参考