読者です 読者をやめる 読者になる 読者になる

よんちゅBlog

― このブログは自分用のメモや日々の問題などを共有するためのものです ―

20121005185841 お知らせ:  2013/07/17 ブログデザインをリニューアルしました。

zshのプロンプトにpyenv(Python)の状態を表示する

zsh python

久々なのでひっそりと更新
リハビリも兼ねて軽めのものを1つ。

はじめに

最近重い腰をあげてようやく Python の開発環境をpyenvに移行しました。

まだ使い始めたばかりですがなかなかの好感触。
ただ、pyenv を使ってて気になったのが、現在どの Python を使っているのかが分かりづらいという点。

よくあるPATH書き換え方式ではないので、which(type) コマンドでパスを見ても分からないんですよね。
最初仕組みを理解してなくて悩んでしまいました…

$ pyenv version
system (set by /Users/yonchu/.pyenv/version)
$ which python
/Users/yonchu/.pyenv/shims/python


$ pyenv global 2.7.8
$ pyenv version
2.7.8 (set by /Users/yonchu/.pyenv/version)
$ which python
/Users/yonchu/.pyenv/shims/python

pyenv コマンドを使えば分かる話なのですが、pyenv を入れてる環境・入れてない環境・入れてるけど使ってない環境が混在すると混乱しちゃうんですよね。
統一しろよって話ですが…

というわけで、zsh のプロンプトに Python のバージョンと仮想環境名を表示させることにしました。

zsh-python-prompt を作った

https://raw.githubusercontent.com/yonchu/zsh-python-prompt/master/img/ScreenShot01.png

zshプラグインとして以下に公開しました。

zsh スクリプトのリハビリもしたかったので、autoload なんかも使って zsh らしく仕上げてみました。

導入方法

zsh-python-prompt を適当な場所に配置

$ git clone https://github.com/yonchu/zsh-python-prompt.git

.zshrc 内で以下のように source する。(パスは適宜書き換えて下さい)

source /path/to/zsh-python-prompt/zshrc.zsh

プロンプトに設定

PROMPT+='$ZSH_PYTHON_PROMPT'

以上

おわり

今回はこんな感じで、久々の更新でした。

キャッシュ機能付きでそこそこ動作も軽いので、良ければ使ってみてください。

補足

上で zsh で source して使うプラグインを作るのは止めにしよう - Qiita という記事へのリンクを張っておきながら、source してるじゃねーかと言われそうですが、コードの見通しや導入の簡単さなどを考えて、初期設定用のコードのみ source するようにしました。