6
votes

After installing pyenv from Homebrew on MacOS Mojave I am getting build errors when attempting to install any python versions.

When running pyenv install for any version the build will fail with error:

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
  Referenced from: /usr/local/bin/awk
  Reason: image not found
2

2 Answers

6
votes
ln -sf /usr/local/opt/readline/lib/libreadline.8.0.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
4
votes

The solution for me was to force link the readline 8 lib that I had under /usr/local/opt/readline/lib/.

> cd /usr/local/opt/readline/lib/
> ls
libhistory.8.0.dylib  libhistory.a          libreadline.8.dylib   libreadline.dylib
libhistory.8.dylib    libhistory.dylib      libreadline.8.0.dylib libreadline.a         pkgconfig

Since I have a newer version of the readline lib, I tried to force it to find the one I have by symlinking it to the filename it was looking for. e.g.

> cd /usr/local/opt/readline/lib/
> ln -s libreadline.8.0.dylib libreadline.7.dylib
> ls
libhistory.8.0.dylib  libhistory.a          libreadline.7.dylib   libreadline.8.dylib   libreadline.dylib
libhistory.8.dylib    libhistory.dylib      libreadline.8.0.dylib libreadline.a         pkgconfig

pyenv install x.y.z should now be working (or at least throw a different error ;).