Blog

Error Could not build wheels for aiohttp, grpcio, mecab-python3, which is required to install pyproject.toml-based projects

原因

一部のPythonパッケージは、インストール時にC拡張をビルドするために追加のツールを必要とします。Dockerのコンテナ内では、これらのツールがインストールされていない可能性がります。

対策

  • Pythonのバージョンをあげる
  • OSに必用なbuildツールを追加する

修正前 Dockerfile

FROM python:3
ENV PYTHONUNBUFFERED 1
ENV PYTHONPATH=/usr/local/bin/python


# ffmpegのインストール
RUN apt-get update && apt-get install -y ffmpeg

修正後 Dockerfile


FROM python:3.11.6
ENV PYTHONUNBUFFERED 1
ENV PYTHONPATH=/usr/local/bin/python

# ffmpegのインストール
RUN apt-get update && apt-get install -y ffmpeg build-essential python3-dev

build-essential はcのビルド系のパッケージ

下記がまとめて入っている。

  • gcc: GNU Compiler CollectionのCコンパイラ
  • g++: GNU Compiler CollectionのC++コンパイラ
  • make: ビルドプロセスを自動化するツール
  • dpkg-dev: Debianパッケージ開発ツール

特にGCPClourdRunCloudProxyを利用するときには必用なパッケージです。


一つ前の記事 CroudRunとCloudSQLの接続方法(Django4.2)
次の記事 テクノロジーと時間節約:ChatGPTの影響