Vim(MacVim-KaoriYa) と Python のバージョンの件で,打ちひしがれた話

こんな人いるかなぁ,とは思いつつ.*1
相変わらず,んな話を書いておきたいと思います.

TL;DR

インストールする Python のバージョンと,Vim のビルド時に指定されている(だろう) Python のバージョンは揃っている(互換がある)こと.


こゆことでした.;

あ...

コンテキスト;



背景

つい先日,あまりの遅さに耐え切れず,キッとなって OS をクリーンインストール*2

そしたら,Vim が起動しない.
というか,アプリケーション自身は起動するようなのですが,ウィンドウが開かない?

Vim は先述の通り,MacVim-KaoriYagVim の方を使用.

その時はどうしても進めなくてはならない作業あって,腰据えて原因究明!! なんて時間も,勿論気分さえもならならず.
ダメ元で .vimrc を前のバージョンに差し替えたら...開いたっ.

助かった!! と,いつもの手癖で [denite][10] 叩いたら,「Python3 ねぇーよ」って鳴かれた.

溜息.

「あれか.また君か」,と思って pythonthreedll の中身を覗いてみると...
あれ? 上手く取得できている様子.

pythonthreedll に格納されているパスを覗いてみると,バージョンが 3.7 となっていることに軽く引っ掛かってはいたわけですが,その時は,これがどのような意味を持つかは露知らず.

そういうことで,その時はとにかく片づけたい事があったので,
何か面倒なことになりそうだな,と暗い気分になりつつ,とりあえず,Python3 が必要とされるプラグインは使わず,で遣り過ごすことに.

そしたら,暗黒からのささやき

といったような苛立ち(笑を Twitter 上に吐き出したら,なんと...

改めて再掲;

正直,びびった笑

何となく互いのバージョンが問題であり,「あぁやっぱり両方とも揃ってなくちゃだめなんだ」と言う道筋は何となくイメージできるようになりました.
が,「じゃそのためにどうすべきか」といった具体的な作業のイメージができず.

冒頭で「Vim のビルド...」となんぞ,のたまっておりますが,
ビルドなんてやったことないし,それ以前に自分がやることすら想像できないレベル.
何かそういうの自分でやるのなんて怖い,なんてすら思ってしまう自身がいたりします.
つか "そっち側にいない人種" だったりするので.

じゃ V3.6 の Python を入れよか

ということに.
かといって,これも上手く出来る自信も湧かないのですが.

当然 Homebrew を介して何とかできないものかと思って,ネット漁る.
結構あるにはあるのですが,まぁ情弱にはどれもハードルが高い.*3

そんな中で参考にさせて頂いたのが以下.;

» Homebrewで旧バージョンのパッケージをインストールしたい
» 心がHomebrewで旧バージョンのパッケージを入れたがってるんだ

有り難い.

最初は,《Homebrewで旧バージョンのパッケージをインストールしたい》の方で紹介されている方法をなぞったのですが,解決せず.
そりゃそう,クリーンインストールしたのだから.

で,最終的に参考にしたのは,冒頭でも挙げましたが,《心がHomebrewで旧バージョンのパッケージを入れたがってるんだ》のやり方.

Homebrew で V3.6.4 の Python をインストール(ダウングレード)する

今後も MacVim-KaoriYa を使い続け,同様の Homebrew を使い続けることを考えると,
"もしかして..." と,また同じような状況に陥ることがあるかも,ぼんやり思って,厚かましい思いながらも,ここに残しておこうかと.

これは先ほどから挙げさせて頂いております《心がHomebrewで旧バージョンのパッケージを入れたがってるんだ》をパクってカバーしてます笑.
ほぼターゲットのアイテムを Python にしただけ.
敬意を示すに,お断りをば.

1: Formula がある homebrew-core/Formula まで移動します.

% cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/

2: 全てのコミットの取得します.(のだそうです)

% git fetch --unshallow

"全て" なので,結構時間かかりますが,信じてじっと待つで OK.

3: Python V3.6 もののコミットを確認しましょう.(のだそうです)

% brew log python --oneline | grep 3.6

ババっと出力されます.
この中から,3.6.4Python を探しました.

なぜ 3.6.4 なのか.その根拠はこちらとなっております.
これが果たして本当の正解なのかは実はよく分かっていなかったりしますorz が,安息の拠り所として.;

スクリプトインターフェース互換バージョン
Lua: 5.1、5.3、LuaJIT 2.0.3(内蔵)
Perl: 5.16(OS X標準)
・Python3: 3.6.4
Python: 2.7(OS X標準)
Ruby: 2.5

出力されたリストの中から,3.6.4 の中で一番上にあるものを,で.;

:
0036460b7c python 3.6.5
6e3f70c43a python: update 3.6.4_4 bottle.
90614f97d1 python: update 3.6.4_4 bottle.
:

コミットハッシュが,6e3f70c43a に目付け.

ここで蛇足ですが,
実は,3.6.5 もインストールしてみたのですが,ダメっぽかったです.
じゃぁ,これまでどうして問題じゃなかったの? は気になりましたが,今はスルー笑

4: リポジトリを古いバージョンの頃に戻す.(のだそうです)

% git checkout 6e3f70c43a python.rb

6e3f70c43a のコミットの状態まで戻す,ということらしいです.

5: 既存の 3.7Python をアンインストール

% brew uninstall --force python

曖昧にしたくなかったので,--force をつけました.

6: 3.6.4Python をインストール

% HOMEBREW_NO_AUTO_UPDATE=1 brew install python

HOMEBREW_NO_AUTO_UPDATE=1 と言うのが大事らしいです.
詳細は参照先を.

一応ここで,python3 --version でバージョン確認しておいてもよろしいかもしれません.

7: 4 で古くしたリポジトリを,元に戻します.(んだそうです)

% git reset HEAD

そして...

% git checkout .

そうしましたら,無事起動し,ウィンドウが開きましたよ.
改めて,「ふ〜ん,そう言うことなんだ.」と.

メモ

この度の作業の中で,こんなエントリに出会いました.;

» MacVim-KaoriYaでpyenvのPythonを使う

これを見て初めて,Vim を "ビルドする" ってこういうことなのだ,とイメージできるようになりました.
有り難い.

ということでこの度,未開の領域に一歩,足を踏み入れた日のお話でした.

はいおしまい.

*1:...いないでしょうね笑.「そうしてそんなことするのかね」的な話で,いたとしても,本っっ当に,ほんっっの一握りでしょう.

*2:結構,カジュアルにやる笑

*3:折れそうになって,Homebrew 使わずインストーラ使ってやっちゃおか,と直前まで行った.