Vim(MacVim-KaoriYa) と Python のバージョンの件で,打ちひしがれた話
こんな人いるかなぁ,とは思いつつ.*1
相変わらず,んな話を書いておきたいと思います.
TL;DR
インストールする Python のバージョンと,Vim のビルド時に指定されている(だろう) Python のバージョンは揃っている(互換がある)こと.
こゆことでした.;
VimがPython3.6用としてビルドされてるのだと思われます
— 暗黒美無王 dark Vim (@ShougoMatsu) July 5, 2018
あ...
コンテキスト;
- OS をクリーンインストールした.
- Vim (MacVim-Kaoriya,gVim) が開かなくなった.
- 原因は Python のバージョンが 3.7 になったことだった.
- Homebrew で V3.6.4 にダウングレード.
- ローカルに旧バージョンはない.あるわけない.
homebrew-core/Formula
のpython.rb
のコミットログ辿ってもない.- Homebrew の全コミットを取ってきてインストール.
» 心がHomebrewで旧バージョンのパッケージを入れたがってるんだ
背景
つい先日,あまりの遅さに耐え切れず,キッとなって OS をクリーンインストール.*2
そしたら,Vim が起動しない.
というか,アプリケーション自身は起動するようなのですが,ウィンドウが開かない?
Vim は先述の通り,MacVim-KaoriYa の gVim の方を使用.
その時はどうしても進めなくてはならない作業あって,腰据えて原因究明!! なんて時間も,勿論気分さえもならならず.
ダメ元で .vimrc
を前のバージョンに差し替えたら...開いたっ.
助かった!! と,いつもの手癖で [denite][10]
叩いたら,「Python3 ねぇーよ」って鳴かれた.
溜息.
「あれか.また君か」,と思って pythonthreedll
の中身を覗いてみると...
あれ? 上手く取得できている様子.
pythonthreedll
に格納されているパスを覗いてみると,バージョンが 3.7 となっていることに軽く引っ掛かってはいたわけですが,その時は,これがどのような意味を持つかは露知らず.
そういうことで,その時はとにかく片づけたい事があったので,
何か面倒なことになりそうだな,と暗い気分になりつつ,とりあえず,Python3 が必要とされるプラグインは使わず,で遣り過ごすことに.
そしたら,暗黒からのささやき
といったような苛立ち(笑を Twitter 上に吐き出したら,なんと...
改めて再掲;
VimがPython3.6用としてビルドされてるのだと思われます
— 暗黒美無王 dark Vim (@ShougoMatsu) July 5, 2018
正直,びびった笑
何となく互いのバージョンが問題であり,「あぁやっぱり両方とも揃ってなくちゃだめなんだ」と言う道筋は何となくイメージできるようになりました.
が,「じゃそのためにどうすべきか」といった具体的な作業のイメージができず.
冒頭で「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.4
の Python を探しました.
なぜ 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.7
の Python をアンインストール
% brew uninstall --force python
曖昧にしたくなかったので,--force
をつけました.
6: 3.6.4
の Python をインストール
% 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 を "ビルドする" ってこういうことなのだ,とイメージできるようになりました.
有り難い.
ということでこの度,未開の領域に一歩,足を踏み入れた日のお話でした.
はいおしまい.