わすれっぽいきみえ

みらいのじぶんにやさしくしてやる

brew install pythonしたらvim-powerlineが動かなくなった件

追記(2015-10-11)

macをel capitanにアップグレードしたらhomebrew周りとvimがうまく動かなくなった。
brew自体の復活はそんなに大変じゃなかったけど、いろいろ面倒くさくなってrbenvの使用もやめた。自分はそんなにしょっちゅうバージョン変えたりしないなって思ったし。
rbenvの使用をやめてbrew install rubyしてから下記のvimの再インストールを実行したら、またvim-powerlineが復活した。


macのシステムに初めからpythonが入ってるんだけどなんとなく brew intall python したらvim立ち上げ時に以下のようなエラーを吐くようになった。

An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Error detected while processing /Users/kimikimi714/.vim/bundle/powerline/powerline/bindings/vim/plugin/powerline.vim:
line  157:
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
Press ENTER or type command to continue

上の line 157: のところは古いpowerlineを使ってると line 74: だったりすることもある。要するにpowerlineのアップデートではどうにもならなかった。

で、解決策は以下の記事を見ると良い。

Vimで'E887: Sorry, this command is disabled, the Python's site module could not be loaded.'なエラー

powerlineがうまく読み込めなくなったのはvim側でpythonのモジュールを読み込むことができなくなったせいだった。まあそんな気はしてたけど、思ったより解決に時間かかった。

というのも以下のissuesの内容をずっと試しててできなかったからだった。

Homebrew Python 2.7.10 upgrade causing powerline to error · Issue #1385 · powerline/powerline · GitHub

ざっくりとこのissuesに書かれてることを日本語意訳すると、

djbender: pythonを2.7.10にアップグレードして、powerline-status (2.1.4)をpip経由で再インストールしたんだけど動かなくなっちゃった。
ZyX-I: それpowerlineと関係ないと思う。 vim -u NONE -i NONE -N -c 'python import vim' を試して動かなかったら、モジュールが読み込めてないってことだと思う。
paambaati: ZyX-Iのいうとおり import vim でエラー吐いたわ。何か間違ってんのかな?
ZyX-I: さっきのコマンドでエラー吐いたんなら、やっぱりpowerline関係ない。vim-useで聞いたほうがいい。正直どうしていいかわからんし。
tjanson: 2.7.9にダウングレードしたら動いたよ
paambaati: 圧倒的感謝!2.7.9で動くんなら、それ固定でいくわー。
MarcoDeBortoli: 2.7.10でも動かせるよ。そう、 brew cleanup 使えばね。
ZyX-I: MarcoDeBortoliさんは2.7.10の何かでコンパイルされたvimか2.7.9環境でコンパイルされたvimかどっちか持ってるってこと?
MarcoDeBortoli: 持ってないよ。ダウングレードしなくても2.7.10で動かせることをpaambaatiに教えてあげようって思っただけ。このやり方ならいけるよ。
paambaati: 圧倒的感謝!動いたわー。
RatanRSur: MarcoDeBortoliさんの言ってるやり方試したけど動かんかった。動かなかったのvim-autoformatだけど。
MarcoDeBortoli: マジか。vim-autoformatで質問した?
ZyX-I: 待って。このissuesで最初に話してたのと全然違う問題になってんじゃん。vimのバグだと思うならvim-devで訊けばいいし、そうじゃないならvim-useで訊けよ。
MarcoDeBortoli そのつもりで言ったんだけど
ZyX-I: あなたはvim-autoformatを勧めてるけど、私はvim-dev or vim-useのメーリスで訊けって言ってるの。
MarcoDeBortoli: vim-autoformatのほうがRatanRSurの問題が解決できるかなーって思ったから言った。vim-devでもいいと思う
RatanRSur: autoformatではもう質問したけど、そしたらここで訊けって言われた。まあvimやってみるよ。

後半のギスギス具合…おわかりいただけただろうか。しかもissue見たらわかるけど、このissueクローズしたはずなのに続いてるからね。

私の詰まってた部分に関して言えばZyX-Iさんの言ってることが正しくて、vimpythonモジュール読めてないのを解決すればいい。2.7.9にしたら解決したって言ってるpaambaatiさんもダウングレードの過程でなんかやってるうちにいい感じにパスが通ったんじゃないかなーと思う。どんな風にダウングレードしたらうまいこと動いたか全然書いてくれてないし、issue立てたdjbenderさんにいたっては最初に発言して以降何も言ってないから本人が解決できたのかわからずじまいだ。

ZyX-Iさんはpowerlineのコントリビューターの一人なので、他の人が解決したかよくわからんけどpowerlineの問題じゃないぜって思ったらクローズっていうあたり、慣れてるんだろうなーと。けどさすがにもう終わったはずの話をずっと引きずってるのはイラっとしたっぽくて「いやーどこも大変だなーw」と思った。まぁRatanRSurさんはたらい回しな訳だからかわいそう…。

もしこのissueがクローズしてなかったら、こうやったら動いたよってのを貼ってもよかったんだけどZyX-Iさんが若干おこだし、変に突っ込んでより燃えても良くないから何も書かないことにした。
この問題を解決できそうな猛者は一言突っ込めばいいと思う。