
WindowsでCellProfiler+RunCellpose導入が「mysqlclientビルド失敗」で止まる原因と最短回避ルート(GPU対応)
CellProfilerをWindowsのMiniconda環境に入れてRunCellposeをGPUで使おうとしたところ、pip install cellprofiler中に ModuleNotFoundError: No module named 'distutils.msvccompiler' → Failed to build mysqlclient で詰まる――この手のトラブルは「あなたの手順が悪い」というより、Windows上でC拡張をビルドさせようとした瞬間に起きやすい構造的な問題です。
結論から言うと、RunCellposeの目的だけなら、mysqlclientのコンパイル地獄を踏まずにGPUまで到達する現実的なルートがあります。
- WindowsでCellProfiler+RunCellpose導入が「mysqlclientビルド失敗」で止まる原因と最短回避ルート(GPU対応)
何が起きているのか:CellProfiler本体ではなく「mysqlclientのビルド」で落ちている
エラーメッセージの中心はCellProfilerではなく、依存関係として引っ張られた mysqlclient のビルドです。mysqlclientはC拡張を含み、Windowsでソースビルドする場合はVisual C++のビルドツール等が必要になりがちです。公式にも「Windowsでのビルドは難しく、バイナリwheelが無いとつらい」趣旨が明記されています。 PyPI
さらに、環境によっては distutils.msvccompiler が見つからない系のエラーが出ます。これはPython本体や周辺ツール(setuptools等)の変化・組み合わせで発火しやすく、依存のビルド工程が走った時点で破綻します。実例として、setuptoolsのバージョンを下げる回避策が共有されています。 Stack Overflow+1
最短で目的達成:RunCellposeは「Dockerで依存関係を丸ごと回避」できる
RunCellposeは、CellposeをDockerで動かす方式が用意されており、モジュール側がDockerイメージを扱えるため「Python環境にCellposeを無理やり同居させる」必要がありません。RunCellposeドキュメントでも、Dockerを使えばインストール作業を大きく省ける旨が明記されています。 plugins.cellprofiler.org+1
さらにDocker Desktop自体も、WindowsでNVIDIA GPUをコンテナから利用する仕組み(GPU-PV)を公式に案内しています。 Docker Documentation
おすすめ手順(要点だけ)
-
CellProfilerは「配布されている実行版(pre-built)」を入れる(Python環境で
pip install cellprofilerを頑張らない) -
RunCellposeはPluginsとして読み込む
-
RunCellposeの実行方式でDockerを選ぶ
→ これで、今回の主犯である mysqlclientのビルド工程そのものを踏まず、GPU利用まで一直線になりやすいです。 plugins.cellprofiler.org+1
「とにかくRunCellposeをGPUで動かしたい」なら、このルートが最も成功率が高いです。
それでも同一Python環境に入れたい場合:まず“Pythonの世代”を合わせる
どうしても「CellProfilerもCellposeも同じConda環境に入れて動かしたい」場合、最初に効くのは CellProfiler側が想定するPythonに寄せることです。Plugins公式ドキュメントでは、CellProfiler 4はPython 3.8を前提にしている旨が説明されています。 plugins.cellprofiler.org
Python 3.9で挑むと、別の依存(例:ビルドが必要なパッケージ)で詰まる報告も出ています。 GitHub
鉄板の作り方(例)
conda create -n cp-gpu python=3.8
conda activate cp-gpu
その上で、可能なら conda-forge中心に依存を揃える(ビルド済みバイナリが入りやすい)→最後に必要なものだけpip、という順番が安定します。
mysqlclient問題の具体的な回避策(優先度順)
1) mysqlclientを「ビルドさせない」:Docker方式に切り替える(最優先)
前述の通り、RunCellposeの目的だけならこれが最短です。 plugins.cellprofiler.org+1
2) どうしてもpipで進むなら:Windows用wheelを使う/入手できる形に寄せる
mysqlclientはWindowsでのソースビルドが難しいため、**wheel(ビルド済み)**がある構成に寄せるのが基本です。過去には有名なwheel配布元を使って回避した事例もあります(環境に合うwheelがある場合のみ)。 Stack Overflow+1
ただし「あなたのPythonバージョン・アーキテクチャに合うwheelが常にある」とは限りません。
3) ビルドを許容するなら:C++ Build Toolsを入れてビルド可能にする
WindowsでC拡張をビルドするなら、Visual C++ビルドツールが必要になるのは定番です(mysqlclient側でも言及されがち)。 Discussions on Python.org+1
ただし、導入しても環境の組み合わせで別の落とし穴が出ることがあるため、「GPU目的だけ」なら優先度は下がります。
4) distutils.msvccompiler系の回避としてsetuptoolsを調整する
環境によっては setuptoolsを特定バージョンに固定することで回ることがあります(報告例)。 Stack Overflow
例:
conda install "setuptools<65"
ただしこれは根本治療というより「ビルド工程が通る組み合わせに寄せる」類なので、他依存への影響も考えて、適用は最小限に。
GPUでRunCellposeを安定運用するためのチェックポイント
-
RunCellposeはGPU対応で、Cellpose 1〜4をサポートしています。 plugins.cellprofiler.org
-
速度目的なら、まず「Docker方式でGPUが見える」ことを確認し、次にCellposeモデル実行へ進むのが近道です。Docker DesktopのGPUサポート要件は公式ページにまとまっています。 Docker Documentation
-
VRAMが小さめのGPUでは、ワーカー数やタイル、バッチサイズ相当の設定でメモリ不足になりやすいので、まずは控えめ設定で動作確認→段階的に攻めるのが安全です(RunCellpose周辺でもメモリ絡みの議論があります)。 plugins.cellprofiler.org+1
まとめ:目的が「RunCellposeをGPUで動かす」なら、勝ち筋は2つ
-
最短の勝ち筋:CellProfilerは実行版+RunCellposeはDocker
→ mysqlclientのビルド問題を根こそぎ回避しやすい。 plugins.cellprofiler.org+2plugins.cellprofiler.org+2 -
同居環境にこだわる勝ち筋:Python 3.8へ寄せ、conda中心で依存を解決し、mysqlclientはwheel/ビルドツール/必要ならsetuptools調整
→ 成功すると運用は楽だが、初期構築の難易度は上がる。 plugins.cellprofiler.org+2PyPI+2
「GPUを使ってとにかく早く回したい」という実務目線では、まずDocker方式でパイプラインを動かし、必要が出てから同居環境に挑むのが最もコスパが良い選択です。