Pythonだけじゃない!conda で言語横断・GPU対応の環境を秒速で切り替える
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) Pythonだけじゃない!conda で言語横断・GPU対応の環境を秒速で切り替える
ひとことでいうと
conda(コンダ)は、Python をはじめ R・C ライブラリなど言語を問わずパッケージを管理し、プロジェクトごとに完全に独立した「作業環境」をつくれるツールです。Linux・macOS・Windows のすべてで動き、無料で使えるオープンソース(誰でも中身を見て改良できるソフト)として公開されています。データサイエンスや機械学習の現場で特に広く使われており、Miniforge や Anaconda という配布パッケージに同梱されているため、多くの開発者に親しまれています。「自分のパソコンでは動くのに、別のパソコンでは動かない」という問題をまるごと解決してくれる、環境管理の頼もしい相棒です。
こんな人におすすめ
1. データサイエンティスト・機械学習エンジニア
複数のプロジェクトで Python のバージョンが違ったり、GPU(画像処理チップ)対応のライブラリを使い分けたりする方に最適です。conda create --name ml-project pytorch cudatoolkit のように、GPU 依存パッケージも含めて環境をひとまとめに管理できます。CUDA(エヌビディア製 GPU を使うための仕組み)のバージョン衝突も回避しやすくなります。
2. 研究者・科学技術計算ユーザー
R パッケージや Fortran 製ライブラリなど Python 以外の依存を含むワークフローを再現可能な形で管理したい方に向いています。バイオインフォマティクス(生物情報学)や気象シミュレーションの分野では、conda-forge・Bioconda という専門チャンネルが強力なサポートを提供しており、conda install -c bioconda samtools bwa のように C 製ツールもワンコマンドで導入できます。
3. チーム開発者・DevOps エンジニア
conda env export > environment.yml で環境の定義をファイルに書き出し、チームメンバーや CI(継続的インテグレーション:自動テストの仕組み)環境で conda env create -f environment.yml を実行するだけで、まったく同じ環境を再現できます。OS をまたいだ環境共有にも活用でき、「自分の PC では動く」問題を大幅に減らせます。
インストール・使い方
conda 自体は、pip(Python の標準パッケージ管理ツール)ではなく、専用の軽量インストーラーから導入するのが公式の推奨です。以下の手順を上から順に進めてみてください。
初めての方へ: 「ターミナル」とは、文字を入力してパソコンに命令を送る画面のことです。Mac なら「ターミナル.app」、Windows なら「PowerShell」や「コマンドプロンプト」がそれにあたります。コマンドはすべてコピー&ペーストで貼り付けて実行できます。
Step 1: Miniforge(推奨)をダウンロードしてインストールする
# Linux の場合(Miniforge3)
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh -b -p $HOME/miniforge3
Miniforge は conda を使い始めるうえで最も軽量でおすすめのスターターパックです。Windows・macOS の場合は公式サイトから GUI インストーラーをダウンロードできます。
Step 2: シェルを初期化して conda コマンドを有効化する
$HOME/miniforge3/bin/conda init bash # zsh や fish にも対応しています
source ~/.bashrc
conda --version # バージョン番号が表示されれば成功です
「シェル」とはターミナル内で命令を解釈するプログラムのことです。conda init を実行することで、ターミナルを開くたびに自動で conda が使えるようになります。
Step 3: 新しい環境を作成して有効化する
conda create --name myenv python=3.11 -y
conda activate myenv
--name myenv は環境に付ける名前です。好きな名前をつけられます。conda activate を実行すると、ターミナルの表示が (myenv) に変わり、その環境の中で作業していることが分かります。
Step 4: 必要なパッケージをインストールする
conda install numpy pandas scikit-learn -y
# conda-forge チャンネルを使う場合
conda install -c conda-forge jupyterlab -y
「パッケージ」とは、ある機能をまとめて提供する部品のようなものです。-c conda-forge は「conda-forge というパッケージ配布元から取ってくる」という意味です。
Step 5: 環境の定義をファイルに書き出して再現できるようにする
conda env export > environment.yml # 環境定義をファイルに出力
conda env create -f environment.yml # 別のマシンや CI で環境を再現
environment.yml というファイルひとつを共有するだけで、まったく同じ環境をどこでも再現できます。チーム開発や論文の再現実験に非常に便利です。
動かしてみた
今回は conda のソースコードリポジトリ(ソースコードの置き場所)を展開して構成ファイルを確認しました。リポジトリの中には開発用起動スクリプト(dev/start・dev/start.bat)が Linux・Windows 向けに用意されており、マルチプラットフォーム対応の開発体制がしっかり整っていることが確認できました。また、durations/Linux.json・durations/macOS.json・durations/Windows.json という3つの OS 向けテスト所要時間ベンチマークや、docs/environment.yml という開発環境定義ファイルも含まれており、conda 自身の開発も conda の仕組みで管理されているのが興味深いです。
インストール後の基本動作確認は以下のコマンドで行えます。
conda --version
# conda 24.x.x のようにバージョンが表示されます
conda info
# アクティブな環境・チャンネル URL・プラットフォーム情報が出力されます
conda info を実行すると、現在どの環境が有効か、どのチャンネル(パッケージ配布元)が設定されているか、どの OS で動いているかなどがまとめて表示されます。インストール直後の確認として最適です。
なお、conda をソースコードから pip でインストールする場合は、hatchling と setuptools-scm(git のタグからバージョン番号を自動生成するビルドツール)が必要なため、通常のユーザーは Miniforge・Miniconda 経由のインストールが推奨です。
ブラウザで試す
conda の主要コマンドをインタラクティブに確認できる Gradio デモをブラウザ上で試すこともできます。環境名・Python バージョン・パッケージ名を入力するとコマンドが自動生成されるので、ターミナルにコピーしてすぐに使えます。インストールなしで雰囲気をつかみたい方の最初の一歩として活用できます。
実践のコツ:はじめの一歩でつまずかないために
conda を使い始めるときに知っておくと便利なポイントをまとめます。最初は覚えるコマンドを絞って、少しずつ慣れていきましょう。
base環境には直接インストールしない: conda をインストールした直後に使えるbase環境はなるべく触らず、プロジェクトごとに新しい環境を作る習慣をつけると安全です。- まずは
conda env listで現在の環境を確認: 今どんな環境があるかをいつでも確認できます。どこに何があるか把握することが大切です。 - よく使うコマンドをメモしておく:
conda create・conda activate・conda install・conda deactivateの4つを覚えるだけで日常の9割はカバーできます。 - ディスクが増えてきたら
conda clean --all -y: conda はキャッシュ(一時保存ファイル)を蓄積するので、定期的に掃除するとディスクを節約できます。 - パッケージが見つからない場合は
-c conda-forgeを試す: 公式チャンネルにないパッケージでも、conda-forge にはほぼ揃っています。 - チームで使うときは
environment.ymlを git 管理する: リポジトリにenvironment.ymlを含めておくと、新メンバーがすぐに環境を再現できます。
以下に日常でよく使うコマンドをまとめました。
conda env list # 環境一覧を表示
conda create -n proj python=3.10 -y # 環境を新規作成
conda activate proj # 環境を有効化
conda deactivate # 環境を無効化
conda search tensorflow # パッケージを検索
conda install numpy scipy -y # パッケージをインストール
conda env remove -n proj # 不要な環境を削除
conda clean --all -y # キャッシュを削除
conda update --name base conda -y # conda 自体を更新
用語とポイント解説
環境(environment)
conda が管理する「独立した作業スペース」のことです。かんたんに言うと、プロジェクトごとに用意した専用の道具箱のようなものです。環境を切り替えれば、インストールされているパッケージやPythonのバージョンがまるごと変わります。conda activate 環境名 で切り替えます。
チャンネル(channel)
パッケージを配布している場所のことです。かんたんに言うと、アプリのダウンロードができるアプリストアのようなものです。defaults(公式)・conda-forge(コミュニティ主体)・bioconda(バイオ系専門)など複数あり、用途に応じて使い分けます。
base 環境 conda 自体をインストールしたときに最初から存在するデフォルトの環境です。かんたんに言うと、conda の「本拠地」にあたる環境です。ここに直接パッケージを追加しすぎると後で管理が煩雑になるため、プロジェクト専用の環境を別に作るのがおすすめです。
CalVer(カレンダーバージョニング)
YY.MM.MICRO という形式でバージョン番号を管理する方式です。かんたんに言うと、バージョン番号がそのままリリースの年月を表しています。たとえば 24.11.0 なら「2024年11月にリリースされた最初の版」と読めます。
ハードリンク ファイルの実体を複数の場所から共有参照する仕組みです。かんたんに言うと、同じファイルをコピーせずに「別名で参照する」技術です。conda はこれを活用することで、複数の環境に同じパッケージをインストールしても、ディスク使用量が無駄に増えないようになっています。
environment.yml conda 環境の構成を記録したテキストファイルです。かんたんに言うと、「この環境には何が入っているか」を書いたメモ書きです。このファイルを共有するだけで、別のパソコンや CI 環境でもまったく同じ環境を再現できます。
conda-forge 世界中のボランティアが運営するパッケージ配布チャンネルです。かんたんに言うと、公式ストアよりも品揃えが豊富な有志運営のマーケットプレイスです。最新バージョンへの対応も早く、多くのユーザーが積極的に活用しています。
setuptools-scm git(バージョン管理ツール)のタグからバージョン番号を自動的に生成するビルドツールです。かんたんに言うと、「リリースのたびに手動でバージョンを書き換えなくてよいようにする自動化ツール」です。conda のソースビルド時に使われており、git 管理下でないフォルダでは正しく動作しません。
バイナリ配布 ソースコードをコンパイル(機械語に変換)済みの状態でパッケージを配布する方式です。かんたんに言うと、「組み立て済みの状態で届けてくれるので、受け取ったその場ですぐ使える」イメージです。pip と異なりインストール時のコンパイルが不要なため、C 拡張を含む科学技術ライブラリも失敗なくインストールしやすくなっています。
活用例
-
Jupyter Lab と特定バージョン Python の共存:
base環境を汚染せず、プロジェクト固有バージョンの JupyterLab や ipykernel を独立環境に閉じ込めて管理できます。VS Code の Python 拡張から直接カーネルとして選択でき、チーム全員が同一のenvironment.ymlから環境を再現するためノートブックの実行結果が一致します。 -
CUDA バージョン別の深層学習環境を1台のマシンで両立: PyTorch(CUDA 11.8 対応)と TensorFlow(CUDA 12.x 対応)を別環境に隔離し、GPU カード1枚で両フレームワークを競合なく利用できます。conda は CUDA ランタイム自体もパッケージとして管理するため、システムへの CUDA 別途インストールが不要なケースもあります。
-
バイオインフォマティクスパイプラインの完全再現:
conda install -c bioconda samtools bwa snakemake -yのように C 製・Haskell 製ツールも conda で一括インストールし、Snakemake ワークフローをenvironment.ymlと組み合わせることで、論文に添付・配布できる完全再現可能な実験環境を構築できます。 -
チーム開発での「動かない」問題の撲滅: リポジトリに
environment.ymlを含めておくだけで、新しいメンバーがconda env create -f environment.ymlを実行すれば即座に同一環境で開発を始められます。OS の違い(Mac と Linux 混在など)を超えた環境共有にも対応しています。 -
古いプロジェクトのレガシー環境を安全に保存:
python=3.7など古いバージョンが必要なプロジェクトも、独立した環境として保存しておけば、現在のメイン環境に影響を与えず維持できます。数年前のコードを動かす必要が生じたときにも安心です。 -
R と Python を同じ環境で使うデータ分析: conda は R パッケージも管理できるため、
conda install r-base r-tidyverseのように R 環境を構築し、Python の rpy2 などと組み合わせた R・Python 混在のデータ分析パイプラインを一元管理できます。
conda の最大の強みは「再現性」と「分離性」の両立です。機械学習・科学技術計算・バイオインフォマティクスなど依存関係が複雑な分野でこそ、その真価を発揮します。ぜひ機械学習プロジェクトの GPU 環境管理や、チーム開発での environment.yml を使った環境共有などに活用してみてはいかがでしょうか。