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?

DeepLabCutをuvでM4 Macにインストールすることをあきらめた話

Last updated at Posted at 2025-08-17

はじめに

研究のために、ノートPC(MacBookPro M4max 48G)にPythonの開発環境を整えています。これまでは、Anacondaで環境構築していたのですが、Anaconda有償化にともない、uvでの環境整備に移行することにしていました。

理由あってDeepLabCut(DLC)でマウスの動画解析をしようと思い立ち、uvとpipでインストールしようとしたのですが、どうやっても無理でしたので、失敗の記録を残すとともに、conda/mambaを用いたApple Silicon MacへのDLCのインストールについて解説します。

DeepLabCutとは

DeepLabCut(DLC)とは、 スイス連邦工科大学ローザンヌ校(Swiss Federal Institute of Technology in Lausanne, École polytechnique fédérale de Lausanne (EPFL))のMackenzie W. Mathis教授の研究室で開発されているソフトウェアです。深層学習(ディープラーニング)技術を用いて、動物などの動画から特定の体の部位をマーカーなしで高精度に追跡・解析することができます。2018年にNature Neuroscience誌で発表されて以来、動物の動作測定のデファクトスタンダードとなっています。

uvでのDLCインストールの試み

DLCのウェブサイトではcondaを利用したインストールが推奨されています。しかし、conda環境とuv環境を混ぜたくなかったので、まずは、uv pipインストールを試みました。

筆者はHomebrewでベース環境を構築しているので、HDF5やbzip2などのパスの設定で少々手こずりましたが、環境変数を適切に設定するなどして、一つづつ解決していきました。そして、最後に残ったのがPyTablesの問題でした。

DLCはPyTables(tables 3.8.0)に依存関係があります。ところが、このtables 3.8.0が曲者で、色々とコンフリクトをおこします。それならばと、先にtables 3.8.0をpipインストールしようとすると、ビルド途中でエラーが出て進みません。

このtables 3.8.0問題には、いろんな人が直面しているようで、GitHubやStack Overflowのスレッドでもいくつか質問がありました。それで、肝心の解決方法はというと、condaでtables 3.8.0インストールする、というものでした。

これでは、せっかくuvで環境を切り分けているのに意味がありません。仕方がないので、conda環境でDLCをインストールしたところ、一発でインストールできました。

mambaによるconda環境の構築

Homebrewでminiforgeをインストールする。

$ brew install --cask miniforge

DLCのインストールと起動

推奨のインストール方法

DLCディレクトリで作業するものとする。

yamlファイルによる環境構築

$ conda env create -f DEEPLABCUT.yaml
$ conda activate DEEPLABCUT

DLCの起動

$ python -m deeplabcut gui

無事に立ち上がりました。
Screenshot 2025-08-17 at 15.16.50.png

SuperAnimal modelsも利用できます。
Screenshot 2025-08-17 at 15.16.59.png

結論

環境は汚れるかもしれませんが、conda/mambaでインストールしましょう。

追記

Homebrewのminiforgeでmambaをインストールすると、パスを正しく認識してくれない場合があります。そんなときは、以下のコマンドでシェルに環境変数を追記します。

$ /opt/homebrew/bin/mamba shell init

.zshrcに環境変数を書き込んでくれます。

出力
Running `shell init`, which:
 - modifies RC file: "/Users/xxxxx/.zshrc"
 - generates config for root prefix: "/opt/homebrew/Caskroom/miniforge/base"
 - sets mamba executable to: "/opt/homebrew/bin/mamba"
The following has been added in your "/Users/xxxxx/.zshrc" file

# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba shell init' !!
export MAMBA_EXE='/opt/homebrew/bin/mamba';
export MAMBA_ROOT_PREFIX='/opt/homebrew/Caskroom/miniforge/base';
__mamba_setup="$("$MAMBA_EXE" shell hook --shell zsh --root-prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__mamba_setup"
else
    alias mamba="$MAMBA_EXE"  # Fallback on help from mamba activate
fi
unset __mamba_setup
# <<< mamba initialize <<<

忘れずに更新します。

$ source .zshrc
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?