Fixing python-build on macOS High Sierra
I upgraded to macOS High Sierra yesterday. The most expected feature is APFS, I’m so excited about it that I did a fresh install from USB rather than a normal in-place upgrade. Everything went well, the installation is super fast, except that High Sierra does not ship with the libssl headers, so pyenv install
fails:
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems
BUILD FAILED (OS X 10.13 using python-build 1.1.4-2-gf9183b5)
One way to fix this is to install OpenSSL with Homebrew and point to it instead:
https://github.com/pyenv/pyenv/issues/988
This does not work for me though, since I switched to pkgsrc last year. I’ve tried:
However this also failed because the incompatible expat from pkgsrc and the system. I resolved to solve this by patching the python-build
script to always download and compile OpenSSL:
index 7c4efc7..98ee6d2 100755
--- a/plugins/python-build/bin/python-build
+++ b/plugins/python-build/bin/python-build
@@ -1386,7 +1386,7 @@ use_homebrew_readline() {
has_broken_mac_openssl() {
is_mac &&
- [[ "$(/usr/bin/openssl version 2>/dev/null || true)" = "OpenSSL 0.9.8"?* ]] &&
+ # [[ "$(/usr/bin/openssl version 2>/dev/null || true)" = "OpenSSL 0.9.8"?* ]] &&
! use_homebrew_openssl
}
In general I think this is even a better approach than linking to Homebrew’s OpenSSL.