Skip to content

Ubuntuでpipインストールできないmysqlclientエラーの解決法

Ubuntuでpip install mysqlclientを実行した際に**「Can not find valid pkg-config name」** エラーが発生する問題は、MySQLの開発用ライブラリが不足していることが主な原因です。この問題を解決するための確実な方法を解説します。

エラーの根本原因

エラーメッセージException: Can not find valid pkg-config nameは、システムにMySQLクライアントライブラリの開発ファイルがインストールされていないことを示しています。Ubuntuではこれらのファイルはデフォルトで含まれていません。

推奨解決策:開発パッケージのインストール

以下のコマンドを実行して必要な開発パッケージをインストールします:

bash
sudo apt-get update
sudo apt-get install pkg-config python3-dev default-libmysqlclient-dev build-essential

各パッケージの役割

  • pkg-config: ライブラリのビルド設定を検出
  • python3-dev: Pythonのヘッダーファイルと静的ライブラリ
  • default-libmysqlclient-dev: MySQLクライアントの開発ファイル
  • build-essential: GCCコンパイラやmakeなどのビルドツール

インストール後、mysqlclientを再インストール:

bash
pip install mysqlclient

Docker環境での対応方法

Dockerfileを使用する場合の記述例:

dockerfile
FROM python:3.11-slim

RUN apt-get update && \
    apt-get install -y \
    pkg-config \
    python3-dev \
    build-essential \
    default-libmysqlclient-dev

RUN pip install mysqlclient

代替手法:環境変数で手動設定

上記パッケージインストールで解決しない場合、環境変数でヘッダーとライブラリのパスを直接指定:

bash
sudo MYSQLCLIENT_CFLAGS="-I/usr/include/mysql" \
MYSQLCLIENT_LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lmysqlclient" \
pip install mysqlclient

::: caution パスの注意点 パスは環境によって異なる場合があります。確実なパス確認には以下を実行:

bash
# ヘッダー確認
sudo find / -name 'mysql.h' 2>/dev/null

# ライブラリ確認
sudo find / -name 'libmysqlclient.*' 2>/dev/null

:::

他のディストリビューションの場合

Fedora/RHEL系
bash
sudo dnf install gcc mysql-devel python3-devel
macOS (Homebrew利用)
bash
brew install pkg-config python3 mysql-client

トラブルシューティング

  1. Python仮想環境を使用している場合、グローバルインストール後に再度試す
  2. pipの権限問題回避:
    bash
    python -m pip install --user mysqlclient
  3. Ubuntuバージョン確認:
    bash
    lsb_release -a

最新のUbuntu LTS(22.04 Jammy Jellyfish)でこの手順は検証済みです。依存関係の問題が解決すれば、mysqlclientは正常にインストールされます。