みなさんこんにちは。たかぱい(@takapy0210)です
本日はM1 Macの分析コンテナ環境に株価分析ライブラリのTA-Lib*1をインストールする際に結構苦労したので、その備忘です。
Dockerfileの内容とエラー内容
こちらのサイト*2などを参考に以下のようなDockerfileを記述してインストールしてみましたが、M1 Mac環境だとエラーが発生します。(Intel版 Macでは問題なくインストールできました)
Dockerfile
... RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz RUN tar -zxvf ta-lib-0.4.0-src.tar.gz && \ cd ta-lib && \ ./configure --prefix=/usr && \ make && \ sudo make install RUN python3 -m pip install TA-Lib ...
エラー内容
Could not build wheels for Ta-Lib, which is required to install pyproject.toml-based projects
回避方法
Dockerfileの記述方法を以下のように変更します
... RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz RUN tar -zxvf ta-lib-0.4.0-src.tar.gz && \ cd ta-lib && \ cp /usr/share/automake-1.16/config.guess . && \ ./configure --prefix=/usr && \ make && \ sudo make install RUN python3 -m pip install TA-Lib ...
これでimportすれば使用できるようになると思います。
おまけ:「numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject」エラーが発生する場合
この場合はnumpyのバージョンを上げると回避できる可能性があります。
pip3 install numpy==1.20.0
参考
※以下を参考に試行錯誤しましたが、結局この中に解決できる方法はありませんでした