ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

M1 Macのdocker環境にテクニカル指標計算ライブラリ「TA-Lib」をインストールする方法

みなさんこんにちは。たかぱい(@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

参考

※以下を参考に試行錯誤しましたが、結局この中に解決できる方法はありませんでした

github.com

mrjbq7.github.io