0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub ActionsでTA-Libインストール失敗!「ta-lib/ta_defs.h が無い」エラーの原因と解決策 (Ubuntu編) これで OKです!そのタイトルでいきましょう👍 GitHub ActionsでTA-Libインストール失敗!「ta-lib/ta_defs.h が無い」エラーの原因と解決策 (Ubuntu編) では、このタイトルで記事の内容を作成しますか?

Last updated at Posted at 2025-10-22

GitHub ActionsでTA-Libインストール失敗!「ta-lib/ta_defs.h が無い」エラーの原因と解決策 (Ubuntu編) 😵‍💫

はじめに

こんにちは!GitHub Actionsを使って株価データの自動取得パイプラインを構築していたのですが、テクニカル分析ライブラリの定番 TA-Lib のインストールで盛大にハマりました...😇

requirements.txtTA-Lib を書いて普通に pip install しようとすると、fatal error: ta-lib/ta_defs.h: No such file or directory という、なんとも不穏なエラーメッセージが...。

今回は、このエラーの原因と、GitHub Actions (Ubuntu環境) でTA-Libを正しくインストールするための手順をまとめます。

何が起きたか? 💥

ワークフローのログを見ると、pip install TA-Lib の途中で以下のようなコンパイルエラーが発生していました。

  gcc ... talib/_ta_lib.c ...
  talib/_ta_lib.c:1225:10: fatal error: ta-lib/ta_defs.h: No such file or directory
   1225 | #include "ta-lib/ta_defs.h"
        |          ^~~~~~~~~~~~~~~~~~
  compilation terminated.
  error: command '/usr/bin/gcc' failed with exit code 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for TA-Lib

ta-lib/ta_defs.h というヘッダーファイルが見つからない、と言われていますね。

なぜエラーになるのか? 🤔

Pythonの TA-Lib ライブラリは、実は C言語で書かれたTA-Lib本体 のラッパー(包み紙)です。pip install する際に、このC言語のコードをコンパイルしようとしますが、GitHub Actionsの実行環境(Ubuntu)にはデフォルトでTA-Lib本体が入っていないため、コンパイルに必要なヘッダーファイル (ta_defs.h など) が見つからずエラーになっていたのです。

間違った解決策:apt-get install libta-lib-dev ❌

「じゃあ、Ubuntuのパッケージマネージャー (apt) でC言語本体を入れればいいのでは?」と考え、以下のコマンドを試しました。
YAML

これは間違い! 🚨

run: |
sudo apt-get update
sudo apt-get install -y libta-lib-dev # <-- このパッケージは存在しない
pip install TA-Lib

しかし、今度は apt-get がエラーを吐きました。
コード スニペット

Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libta-lib-dev

なんと、libta-lib-dev という名前のパッケージはUbuntuの公式リポジトリには存在しませんでした...。

正しい解決策:ソースからビルド! 🔨

結局、TA-LibのC言語本体は、ソースコードから手動でビルド(コンパイル)してインストールする必要がありました。Qiitaの記事 などを参考に、以下の手順をGitHub Actionsのワークフロー (.github/workflows/daily-run.yml) に組み込みました。
コード スニペット

  # 3. ライブラリのインストール(必須)
  - name: Install dependencies
    run: |
      python -m pip install --upgrade pip

      # --- ここからTA-Lib本体のビルド ---
      # 1. ビルドに必要なツールをインストール
      sudo apt-get update
      sudo apt-get install -y build-essential wget

      # 2. ソースコードをダウンロード
      wget [http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz](http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz)

      # 3. 解凍
      tar -xzf ta-lib-0.4.0-src.tar.gz

      # 4. ビルドとインストール
      cd ta-lib/
      ./configure --prefix=/usr
      make
      sudo make install
      # --- ここまでTA-Lib本体のビルド ---

      # 5. requirements.txt (TA-Libを含む) をインストール
      #    本体がインストールされたので、pip install が成功する ✨
      cd ..
      if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

ポイントは、pip install -r requirements.txt を実行する前に、wget でソースコードをダウンロードし、configure, make, make install でC言語ライブラリ本体をシステムにインストールすることです。

まとめ

GitHub Actions (Ubuntu) でPythonの TA-Lib を使う場合は、pip install だけではダメで、事前にC言語ライブラリ本体をソースからビルドする必要がある、という話でした。

fatal error: ta-lib/ta_defs.h: No such file or directory が出たら、慌てずにビルド手順を追加しましょう! 💪

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?