| この記事の要点 |
|
conda コマンドとは
conda は Anaconda / Miniconda に同梱されているコマンドで、2 つの役割を兼ねています。
- パッケージ管理: Python ライブラリだけでなく、C/C++ で書かれた数値計算ライブラリや、Python 本体そのもののバージョンも管理できる
- 仮想環境管理: プロジェクトごとに独立した環境を作り、ライブラリのバージョン衝突を避ける
pip が「Python パッケージだけ」を扱うのに対し、conda はその下にある依存ライブラリまで含めて面倒を見ます。NumPy や SciPy のように内部でネイティブライブラリを使うものが、ビルドなしで入るのはこのためです。
コマンドを打つ場所は、Windows なら Anaconda Prompt です。通常のコマンドプロンプトでは conda にパスが通っていないことがあります。
まず覚える 5 つ
# ① 環境を作る(Python のバージョンも指定できる)
conda create -n myenv python=3.11
# ② 環境に入る / 出る
conda activate myenv
conda deactivate
# ③ パッケージを入れる
conda install numpy pandas
conda install -c conda-forge scikit-learn # チャネル指定
# ④ 何が入っているか見る
conda list
conda env list # 環境の一覧
# ⑤ 環境を書き出す / 復元する
conda env export > environment.yml
conda env create -f environment.yml
この 5 つが回せれば、日常の作業はほぼ困りません。
よく使うコマンド一覧
| 目的 | コマンド |
|---|---|
| 環境を作る | conda create -n 名前 python=3.11 |
| 環境に入る | conda activate 名前 |
| 環境から出る | conda deactivate |
| 環境の一覧 | conda env list または conda info -e |
| 環境を消す | conda remove -n 名前 --all |
| パッケージを入れる | conda install パッケージ名 |
| バージョン指定で入れる | conda install numpy=1.26 |
| パッケージを消す | conda remove パッケージ名 |
| 更新する | conda update パッケージ名 / conda update --all |
| 入っているものを見る | conda list |
| 探す | conda search パッケージ名 |
| 環境を書き出す | conda env export |
| 環境を復元する | conda env create -f environment.yml |
| キャッシュを消す | conda clean --all |
| conda 自体を更新 | conda update -n base conda |
チャネル(配布元)の考え方
conda はパッケージをチャネルと呼ばれるリポジトリから取得します。標準は Anaconda 社の defaults、コミュニティ運営で品揃えが多いのが conda-forge です。
# 一度だけ conda-forge から入れる
conda install -c conda-forge パッケージ名
# この環境では常に conda-forge を優先する
conda config --env --add channels conda-forge
conda config --env --set channel_priority strict
# 現在の設定を確認
conda config --show channels
複数チャネルを混ぜると依存解決が壊れやすくなります。channel_priority strict を設定して優先順位を固定しておくと、解決に何分もかかったり、途中で失敗したりする事態を減らせます。
pip との併用で事故らないために
conda 環境の中で pip を使うこと自体はできますが、両方が同じパッケージを別々に管理し始めると壊れます。conda はファイルの所有者を把握していますが、pip が上書きしたファイルまでは追えないためです。
| やること | 理由 |
|---|---|
| conda で入るものは conda で入れる | 依存を conda が一元管理できる |
| conda に無いものだけ pip | やむを得ない場合の逃げ道 |
| conda を先に、pip を後に | 順序を逆にすると conda が pip 版を上書きする |
| 同じパッケージを両方で入れない | 二重管理になり、どちらが有効か分からなくなる |
| 壊れたら環境を作り直す | 修復より作り直しのほうが速い |
環境を作り直す前提で運用するなら、environment.yml を必ず残しておいてください。作り直しが数分で済みます。
環境の共有と再現
# 完全な状態を書き出す(OS 依存のビルド番号まで含む)
conda env export > environment.yml
# OS をまたいで使うなら --from-history が扱いやすい
# (自分が明示的に install したものだけを書き出す)
conda env export --from-history > environment.yml
# 復元
conda env create -f environment.yml
# 既存の環境に反映(差分更新)
conda env update -f environment.yml --prune
素の conda env export は、そのマシンで解決された正確なビルドまで記録するため、別 OS では復元に失敗しがちです。Windows で作った yml を Linux で使うなら --from-history を選んでください。
ディスクを食い始めたら
# 何がどれだけ使っているか
conda env list
du -sh ~/anaconda3/envs/* # Linux / macOS
# ダウンロード済みパッケージとキャッシュを削除
conda clean --all
# 使っていない環境を消す
conda remove -n 古い環境名 --all
conda は環境ごとにパッケージの実体を持つため、環境を増やすほどディスクを使います。conda clean --all は環境そのものには影響しないので、まずこれを試してください。
FAQ
Q: conda activate が「CommandNotFoundError」になります
A: シェルの初期化がされていません。conda init bash(使っているシェル名)を実行し、ターミナルを開き直してください。Windows は Anaconda Prompt を使うのが確実です。
Q: conda install が終わりません
A: 依存解決に時間がかかっています。チャネルを絞る(channel_priority strict)、Python のバージョンを明示する、新しい環境を作ってから入れる、のいずれかで改善します。
Q: base 環境に直接インストールしていいですか?
A: 避けてください。base が壊れると conda 自体が動かなくなります。用途ごとに環境を作るのが基本です。
Q: Anaconda と Miniconda のどちらを使うべきですか?
A: 最初から大量のライブラリが要るなら Anaconda、必要なものだけ入れたいなら Miniconda です。conda コマンドの使い方はどちらも同じです。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15
- 【DB2】テーブル定義からDDL(CREATE TABLE)を生成する方法 2026-10-15 12:30:38
- Db2エラー一覧|SQL0911Nの理由コード・SQL0805Nと安全な調査 2026-10-15 12:30:38