Posted at

osx の pyenv な python で矢印キーが使えない問題の暫定対応

More than 1 year has passed since last update.


TL;DR

python が libreadline.6.dylib を読もうとするので、互換用のシンボリックリンクに別名で貼っちゃう。

cd $(brew --prefix readline)/lib

ln -s libreadline.dylib libreadline.6.dylib


環境


  • OSX Terminal.app (ターミナル.app)

  • Xcode 8.0

  • Homebrew


    • pyenv 1.0.2

    • zsh 5.2




事象と経緯

brew で入れた virtualenv + pyenv な python 環境で矢印キーが死んどる。

python あるあるの矢印キーや履歴利かない問題。

pip install readline して import readline してみると

ImportError: dlopen(/usr/local/var/pyenv/versions/3.5.2/lib/python3.5/lib-dynload/readline.cpython-35m-darwin.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib

Referenced from: /usr/local/var/pyenv/versions/3.5.2/lib/python3.5/lib-dynload/readline.cpython-35m-darwin.so
Reason: image not found

libreadline.6.dylib はあるかなーと見てみると


/usr/local/opt/readline/lib

libhistory.7.0.dylib

libhistory.7.dylib@
libhistory.a
libhistory.dylib@
libreadline.7.0.dylib
libreadline.7.dylib@
libreadline.a
libreadline.dylib@

無い。

readline 6.x だった頃の fomula のハッシュ探して入れ直すのも面倒。大事でもないしリンクで絆創膏。

cd $(brew --prefix readline)/lib

ln -s libreadline.dylib libreadline.6.dylib

解決(あさっての方を見ながら)