AWSのLambdaでseleniumを動かしたく、動作確認のためにpython 3.7.3をローカル環境にインストールしようとしていたところ、標記のエラーに遭遇しました。
(seleniumを動かすために相性が良いバージョンが3.7.3しか無かった…)
error: implicit declaration of function ‘sendfile’ is invalid in C99
ちなみにエラーの全文は以下の通り。
筆者の環境は以下の通り。
- macOS Big Sur version 11.7.4
- pyenv: stable 2.3.31
結論だけ述べると、以下のコマンドを実行することで無事にインストール出来ました。
CFLAGS=”-I$(brew –prefix openssl)/include -I$(brew –prefix bzip2)/include -I$(brew –prefix readline)/include -I$(xcrun –show-sdk-path)/usr/include” LDFLAGS=”-L$(brew –prefix openssl)/lib -L$(brew –prefix readline)/lib -L$(brew –prefix zlib)/lib -L$(brew –prefix bzip2)/lib” pyenv install –patch 3.7.3 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
コマンドの実行結果は以下の通り。
以下の記事を参考にしました。
- https://qiita.com/hisa_shim/items/abb4936f1f676fe6a7b8
- https://qiita.com/w_omit/items/0cc5f85490317bb8524b
2, 3年前にも同じことをやろうとして、同じところで詰まった気がするので、忘れないようにここに書き記しておきます。