asdf で(pyenvでも) Python 3.12.xをインストールしようとしたら、以下のようなエラー出力に遭遇した。
% asdf install python 3.12.2 .... .... .... .... BUILD FAILED (OS X 13.4.1 using python-build 2.5.3-2-g2f4bdcdb) Inspect or clean up the working tree at /var/folders/4c/wcry6r391s5cxyc66bnktgf80000gn/T/python-build.20250302164807.4616 Results logged to /var/folders/4c/wcry6r391s5cxyc66bnktgf80000gn/T/python-build.20250302164807.4616.log Last 10 log lines: /usr/local/bin/ginstall -c -m 755 Modules/termios.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/termios.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_posixshmem.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_posixshmem.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_multiprocessing.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_multiprocessing.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_ctypes.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_ctypes.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_curses.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_curses.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_curses_panel.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_curses_panel.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_sqlite3.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_sqlite3.cpython-312-darwin.so /usr/local/bin/ginstall -c -m 755 Modules/_ssl.cpython-312-darwin.so /Users/LOGNAME/.asdf/installs/python/3.12.2/lib/python3.12/lib-dynload/_ssl.cpython-312-darwin.so ginstall: cannot stat 'Modules/_ssl.cpython-312-darwin.so': No such file or directory make: *** [sharedinstall] Error 1 error installing version: failed to run install callback: exit status 1
Python 3.12.xのインストール自体は成功しているようだが、このエラーで示されている _ssl.cpython-312-darwin.so
というモジュールは欠落してしまっているようだ。
インストールされているOpenSSLが1.x系で、そちらがビルド用ライブラリ参照先になっていると、このようなエラーになるようだ。
Macの場合は、Homebrewで下のように OpenSSL 3.x系をインストールして、
brew unlink openssl brew install openssl@3 brew link openssl@3
さらに、.bashrc
(zshなら.zshrc
)に下のようなビルド用ライブラリ参照先を明示的に設定してやる。
export CPPFLAGS="-I$(brew --prefix)/include" export LDFLAGS="-L$(brew --prefix)/lib"
上の操作を行った上で、一旦エラーが出力されたPython 3.12.xをアンイストールして、再度インストールを行うと解決できる。
asdf uninstall python 3.12.2 asdf install python 3.12.2
Ubuntu/Linuxでも、Python 3.12.xのインストール時に同様のエラーが出力されたら、ビルド用ライブラリ参照先としてOpenSSL 1.x系を無効にして3.x系を有効にすれば解決できるはずだ。
【参照リンク】