---
title: "pipとcondaの違いと使い分け｜混ぜると壊れる理由とAnaconda・Miniforgeの選び方"
url: "https://www.issoh.co.jp/tech/details/7775/"
published: 2025-07-18
updated: 2026-10-19
categories: ["Python"]
publisher: "株式会社一創"
---

# pipとcondaの違いと使い分け｜混ぜると壊れる理由とAnaconda・Miniforgeの選び方

pipとcondaはどちらも「Pythonのライブラリを入れる道具」に見えますが、扱える範囲と依存関係の直し方が違います。pipはPython公式のインストーラで、PyPIからPythonパッケージを入れます。condaはPythonの外側にあるC/C++ライブラリやPython本体まで含めて、環境ごと管理します。この記事では、2026年10月時点の版（conda 26.9.3・pip 26.2.1）を前提に、両者の違い、混ぜたときに実際に何が起きるか、Anaconda・Miniconda・Miniforgeの選び方、関連会社を含め従業員・請負人が200人を超える営利組織で有料になる商用ライセンスまでを、検証環境で実行した結果とあわせて解説します。

## まとめ：データ分析はconda、それ以外はpip。混ぜるならcondaが先

NumPy・SciPy・GPU版の機械学習ライブラリなど、ネイティブ依存の重い環境を作るならcondaを選びます。Webアプリやスクリプトのように純粋なPythonパッケージで足りるなら、pip（venvやuvと組み合わせる）で十分です。uvはpipより1桁速く、検証ではNumPy・pandas・SciPyの導入が4.7秒で終わりました。

両方を1つの環境で使うなら、condaで入れられるものを先に全部入れ、最後にpipを使います。逆順にすると、pipで入れた版の上にcondaが別の版を重ねて書き込み、`conda list`の表示と実際に読み込まれる版が食い違います（後述の実測）。商用ではAnacondaの公式チャネル（defaults）を200人超の組織で使うと有料ライセンスが必要です。費用をかけずに使い続けたいなら、conda-forgeを既定にしたMiniforgeを選びます。

## pip・conda・Anacondaの関係

3つは同じ階層の道具ではありません。pipは「インストーラ」、condaは「パッケージと環境のマネージャ」、Anacondaは「condaに数百のライブラリを同梱した配布物」です。「conda anaconda 違い」で迷う人が多いのは、Anacondaを入れるとcondaも一緒に入るためです。

### pipとPyPI：Python公式のインストーラ

pipはPython本体に同梱されるインストーラで、**PyPI（Python Package Index）**からパッケージを取得します。PyPIのトップページには2026年10月時点で約92万のプロジェクトが登録されていると表示されています。最新版は[pip 26.2.1（2026年8月4日公開・Python 3.10以上）](https://pypi.org/project/pip/)です。扱えるのはPythonのパッケージで、C拡張を含むものはビルド済みのwheelで配布されていれば導入でき、wheelが無ければ手元でコンパイルが走ります。

### condaとチャネル：defaultsとconda-forge

condaはパッケージの取得元を**チャネル**と呼びます。主なチャネルはAnaconda社が運営する`defaults`（repo.anaconda.com）と、コミュニティが運営する`conda-forge`の2つです。[conda-forge](https://conda-forge.org/)は公式集計で3万4千を超えるパッケージを配布しており、商用でも無料で使えます。condaのパッケージはPythonに限らず、OpenBLASやlibjpeg、Rやコンパイラまでビルド済みバイナリで配布されます。

### Anaconda・Miniconda・Miniforgeの違い

condaを手に入れる配布物は主に3つです。どれを入れてもcondaコマンドは同じで、違いは同梱物と既定のチャネルにあります。容量は2026年10月時点の公式配布ページから取りました。

| 配布物                   | 最新版       | 既定チャネル      | インストーラ容量        | 向く用途         |
| --------------------- | --------- | ----------- | --------------- | ------------ |
| Anaconda Distribution | 2026.07-1 | defaults    | Windows 1.0GB   | GUIですぐ分析を始める |
| Miniconda             | 26.9.3-0  | defaults    | Windows 152.6MB | 構成を自分で選ぶ     |
| Miniforge             | 26.7.2-0  | conda-forge | Windows 141.4MB | 商用で無料を保つ     |

[Anaconda Distribution 2026.07-1](https://www.anaconda.com/docs/getting-started/anaconda/release-notes)はPython 3.14.6とNavigator・Spyder・Jupyterなどを同梱し、Linux版インストーラは1.1GBあります。[Miniconda 26.9.3-0](https://www.anaconda.com/docs/getting-started/miniconda/release-notes)はcondaとPython 3.14.8など最小限だけです。[Miniforge](https://github.com/conda-forge/miniforge)はconda-forgeが配布し、高速な`mamba`も同梱します。以前あったMambaforgeは2023年にMiniforgeと中身が同じになり、2025年1月以降の新リリースからインストーラが廃止されました。いまMambaforgeを案内している手順書は古いと判断して構いません。

## pipとcondaの違いを比較表で整理

| 観点          | pip          | conda                  |
| ----------- | ------------ | ---------------------- |
| 取得元         | PyPI         | defaults / conda-forge |
| 扱う範囲        | Pythonパッケージ  | Python本体・C/C++・Rも      |
| 依存解決        | 要求同士は解く      | 環境全体を解き直す              |
| 既存パッケージとの矛盾 | 警告だけで入れる     | 他も上げ下げして揃える            |
| 仮想環境        | venv・uvが別途必要 | conda単体で作れる            |
| Pythonの版の切替 | pyenv・uvが必要  | 環境ごとに指定できる             |
| 費用          | 無料           | defaultsは200人超で有料      |

### 扱える範囲：C/C++ライブラリまで入るか

condaはPythonの外側の依存もパッケージとして扱います。たとえばconda-forgeのNumPyは線形代数ライブラリ（BLAS）を別パッケージとして一緒に入れます。検証環境（Intel Mac）で`numpy.show_config()`を見ると、conda版はconda-forgeのOpenBLAS 0.3.34（libblas 3.11.0）を、PyPIのwheel版はmacOS標準のAccelerateを使っていました。どちらでも動きますが、GDAL・PostgreSQLクライアント・CUDA周りのようにwheelが揃っていない、あるいはシステム側のライブラリと版を合わせる必要があるものは、condaの方が手元のビルド環境を用意せずに済みます。

### 依存解決：pipも解くが、入っている物は見直さない

「pipは依存関係をチェックしない」と説明されることがありますが、これは2020年のpip 20.3より前の話です。現在のpipには[依存リゾルバ](https://pip.pypa.io/en/stable/topics/dependency-resolution/)があり、一度に指定したパッケージ同士が矛盾すると止まります。pip 26.2.1で`scipy==1.18.1`と`numpy<2`を同時に指定すると、次のエラー（抜粋）でインストールしません。

```
ERROR: Cannot install numpy<2 and scipy==1.18.1 because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible
```

違いが出るのは「既に入っているパッケージ」との矛盾です。SciPy 1.18.1が入った環境で`pip install numpy==1.26.4`を実行すると、pipは警告を出したうえでNumPyを下げてしまいます。SciPyは壊れたまま残ります。importすると「NumPy 2.0以上が必要」という警告が出て、scipy.statsやscipy.sparseは「module ‘numpy’ has no attribute ‘long’」で読み込めませんでした。

```
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
scipy 1.18.1 requires numpy<2.8,>=2.0.0, but you have numpy 1.26.4 which is incompatible.
```

condaに`numpy=1.26`（とpandas=3.0）を指定してdry-runすると、condaは環境全体を解き直し、NumPyを1.26.4へ下げると同時にSciPyも1.17.1へ下げる計画を出しました。依存の重いデータ分析環境でcondaが壊れにくいと言われる理由はここにあります。condaは2023年10月の23.10.0から[高速なlibmambaソルバを既定](https://docs.conda.io/projects/conda/en/stable/release-notes.html)にしており、「condaは解決が遅い」という評判も当時ほど当てはまりません。

### 仮想環境とPythonの版：conda単体かvenv＋pyenvか

condaは`conda create -n myenv python=3.12`の1行で、Python本体ごと別の版の環境を作れます。pipには環境を作る機能がなく、標準ライブラリのvenvで環境を作り、Pythonの版を切り替えるにはpyenvやuvを使います。venv・コンテナ・仮想マシンで隔離の強さがどう違うかは[仮想環境とは？venv・コンテナ・仮想マシンの違いと隔離レベルの選び方を実装者向けに解説](/tech/details/13536/)で、pyenvの手順は[pyenvでPythonのバージョンを切り替える手順｜shimの仕組みとビルド失敗の対処](/tech/details/17513/)で扱っています。

### 環境を作る速さと容量

Python 3.12にNumPy・pandas・SciPyを入れる環境を、NumPy・pandas・SciPyとPython本体がキャッシュに無い状態で、3通り作りました。入った版はどれもNumPy 2.5.4・pandas 3.0.6・SciPy 1.18.1です（Intel Mac・2026年10月18日。pipは25.0.1、uvは0.11.31。時間はパッケージ導入のみでvenv作成は含まず、回線速度で変わります）。

| 方法                        | 所要時間  | 環境の容量 |
| ------------------------- | ----- | ----- |
| conda create（conda-forge） | 53.2秒 | 365MB |
| venv＋pip install          | 46.1秒 | 計測せず  |
| uv venv＋uv pip install    | 4.7秒  | 140MB |

condaの時間にはPython本体のダウンロードも含まれ、uvは管理下のPythonを取得済みの状態で測っています。条件の差を差し引いても、純粋なPythonパッケージとwheelで足りる構成ならuvがpipの約10分の1の時間（4.7秒対46.1秒）で終わり、容量も半分以下でした。condaはパッケージのキャッシュ（`pkgs`）も別に持つため、ディスクを空けたいときは`conda clean --all`を使います。

## pipとcondaを混ぜると何が起きるか：conda 26.7での実測

「混ぜるな危険」とよく言われますが、何が壊れるのかを書いた解説は多くありません。Miniforge 26.7.2-0（conda 26.7.2）で、conda環境の中でpipとcondaを逆順に使い、何が起きるかを確かめました。

### pipで入れた版の上にcondaが別の版を書き込む

condaでNumPy 2.5.4入りの環境を作り、pipで`numpy==2.2.6`に入れ替えました。この時点で`conda list`はNumPyを「2.2.6・チャネルpypi」と表示します。次に、NumPyに依存するscikit-learnを`conda install`しました。condaはpipのNumPyを自分の管理下とは見なさず、conda-forgeのNumPy 2.5.4を追加でインストールしました。

```
$ conda list numpy
numpy    2.2.6    pypi_0    pypi
$ python -c "import numpy; print(numpy.__version__)"
2.5.4
$ ls site-packages | grep numpy
numpy
numpy-2.2.6.dist-info
numpy-2.5.4.dist-info
```

結果は、メタデータが2組並び、`conda list`は2.2.6と表示するのに実際に読み込まれるのは2.5.4という状態でした。この環境を`conda env export`で書き出すと、pip欄に`numpy==2.2.6`が残ります。別のマシンで再現すると、元の環境とは違う版の組み合わせができあがります。

### conda doctorとpip checkで検知する

この壊れ方は`pip check`では見つかりませんでした（「No broken requirements found.」）。pipから見れば依存は満たされているためです。一方、[conda doctor](https://docs.conda.io/projects/conda/en/stable/commands/doctor.html)は環境の不整合を指摘しました。

```
$ conda doctor -p ./sci
❌ The environment is not consistent.
❌ These packages are not installed by conda:
numpy 2.2.6
```

pipを使った環境では、`pip check`と`conda doctor`の両方を流すのが確実です。conda 26系の`conda env export`は、pipで入れたパッケージがあると「Conda cannot reliably lock these packages」という警告も出します。

### 安全な順序と、壊れたときの戻し方

[condaの公式ガイド](https://docs.conda.io/projects/conda/en/stable/user-guide/tasks/manage-environments.html)は「できるだけ多くの依存をcondaで入れ、そのあとでpipを使う」こと、pipのあとにcondaパッケージを足す必要が出たら「環境を作り直す」ことを勧めています。実務では、依存をenvironment.ymlに書き、pipの分をpip欄にまとめておくと、作り直しが1コマンドで済みます。

```
name: analysis
channels:
  - conda-forge
dependencies:
  - python=3.12
  - numpy
  - pandas
  - scikit-learn
  - pip
  - pip:
    - some-pypi-only-package
```

```
conda env create -f environment.yml
conda env remove -n analysis    # 壊れたら消して作り直す
```

condaにあるかどうかは`conda search パッケージ名`で確かめてから、pipに回します。pipで足すのは、conda-forgeに無い純粋なPythonパッケージに限るのが安全です。

## 用途別の使い分けと避けたい組み合わせ

| 用途                 | 選ぶ道具                  |
| ------------------ | --------------------- |
| データ分析・機械学習・GPU     | conda（Miniforge）      |
| Webアプリ・API・スクリプト   | pip＋venv、またはuv        |
| Python以外のツールも同じ環境に | conda、またはPixi         |
| 本番のコンテナイメージ        | pip＋venvかuv           |
| Jupyterで授業・研修      | Anaconda Distribution |

判断に迷うのは機械学習です。PyTorchは2.5を最後に公式のpytorchチャネルでの配布をやめており（conda-forgeには引き続きあります）、公式手順はpipです（詳しくは[PyTorchとは？読み方・できること・TensorFlowとの違いと入れ方【2.14対応】](/tech/details/1315/)）。TensorFlowも公式の導入手順はpipです（[TensorFlowをPythonで使う方法：対応版・インストール・GPU設定と動くコード【2026年10月】](/tech/details/3134/)）。こうしたライブラリが中心なら、conda環境でPython本体とCUDA周りだけをcondaに任せ、フレームワークはpipで最後に入れる、という順序にします。

避けたい組み合わせもはっきりしています。

- **本番イメージにAnaconda Distributionを入れる**：インストーラだけで1GB前後あり、使わないライブラリでイメージが膨らみます。コンテナではpipかuvで必要な分だけ入れます。
- **HomebrewやaptのPythonへ直接pip install**：[PEP 668](https://peps.python.org/pep-0668/)に対応したPythonでは`error: externally-managed-environment`で止まります（検証ではHomebrewのPythonで発生）。`--break-system-packages`で押し切らず、venvを作ってから入れます。
- **condaのbase環境に作業用のパッケージを入れる**：baseはconda本体が動いている環境です。壊すとcondaコマンドごと動かなくなるので、作業は必ず`conda create`した環境で行います。

社内の業務システムやデータ分析基盤をPythonで組む場合、どの道具を選ぶかより「全員が同じ手順で同じ環境を作れるか」で事故の数が決まります。環境定義の設計から任せたい場合は[フルスクラッチ開発](/service/system/fullscratch/)の支援もご相談いただけます。

## Anacondaの商用ライセンス：200人ルールとToS同意

condaというツールと、conda-forgeチャネルは無料です。有料になり得るのはAnaconda社のサービス（defaultsチャネル・Anaconda Distribution・Minicondaからの取得を含む）です。[AnacondaのTerms of Service](https://www.anaconda.com/legal/terms/terms-of-service)第1条(b)は、**関連会社（Affiliates）を含めて従業員・請負人が200人を超える営利組織**が利用する場合、Business Planの契約を求めています。関連会社は第21条で、支配・被支配・共通支配の関係にある法人（50％超の所有など）と定義されているため、子会社単体が200人未満でもグループ全体で数えます。

大学など認定された高等教育機関は、[Academic Policy](https://www.anaconda.com/legal/terms/academic)により登録すればStarter Planを無料で使えます。非営利・研究機関も、Non-Profit and Research Policyの条件を満たせば無料の対象です。また2025年7月15日から、MinicondaとAnaconda Distributionに同梱された[conda-anaconda-tosプラグイン](https://www.anaconda.com/docs/getting-started/tos-plugin)が有効になり、Anacondaのチャネルへ初めてアクセスするときにコマンドラインで規約への同意を求めます。一括で同意するコマンドは`conda tos accept`で、`CI=true`のCI環境では自動で同意して警告だけ出します。CIで知らないうちに同意していた、という形で規約の対象になる点は押さえておきます。

費用をかけずに使い続けるなら、Miniforgeを入れてconda-forgeだけを使います。検証したMiniforge 26.7.2-0にはconda-anaconda-tosが入っておらず、`conda tos`サブコマンド自体がありませんでした。既にMinicondaを使っている場合は、`conda config --show channels`で`defaults`が残っていないかを確認します。規約は改定されることがあるため、導入を決める前に最新の条文を確認してください。

## Miniforgeのインストール手順（Windows・macOS・Linux）

作った環境にJupyter Notebookを入れて起動する手順は[Jupyter Notebookのインストール手順｜7.6系をpip・uv・condaで入れる方法](/tech/details/17961/)で扱っています。

### Windows：Miniforge PromptとPATHの扱い

[MiniforgeのGitHubリリース](https://github.com/conda-forge/miniforge/releases/tag/26.7.2-0)から`Miniforge3-Windows-x86_64.exe`を、Minicondaなら公式配布ページから`.exe`をダウンロードして実行します。インストーラはPATHへの追加を既定で推奨していません。インストール後はスタートメニューに追加される**Miniforge Prompt**（Minicondaなら**Anaconda Prompt**）を開いて確認します。

```
conda --version
conda info
```

PowerShellで`conda`が認識されないときは、このプロンプト内で`conda init powershell`を一度実行します。

### macOS・Linux：インストールスクリプトとauto\_activate

Miniforgeは、OSとCPUに合ったスクリプトをGitHubから取得して実行します。Apple Silicon・Intel Mac・Linux（x86\_64／aarch64）で同じコマンドです。

```
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
```

検証環境ではインストールに62秒かかり、展開後の容量はパッケージキャッシュ込みで430MBでした。途中で`conda init`を実行するか聞かれ、実行するとシェル起動時にbase環境が自動で有効になります。自動で有効にしたくない場合は次の設定を入れます。conda 25.5以降は設定名が`auto_activate`に変わり、従来の`auto_activate_base`は別名として残っています。

```
conda config --set auto_activate false
```

## condaの基本コマンドと環境の書き出し

日常で使う操作は次の通りです。環境はプロジェクトごとに作ります。

```
# 環境の作成・切替
conda create -n myenv python=3.12
conda activate myenv
conda deactivate

# 一覧
conda env list           # 環境の一覧
conda list               # 有効な環境のパッケージ一覧

# インストール・更新・削除
conda install numpy=2.5
conda install -c conda-forge scipy
conda update --all
conda remove scipy

# 書き出しと再現
conda env export --from-history > environment.yml
conda env create -f environment.yml
```

`conda env export`をそのまま使うとビルド番号まで固定され、OSが違うと再現できません。チームで共有するなら、明示的に指定したパッケージだけを書き出す`--from-history`が扱いやすいです。ただし検証では、pipで入れ替えたパッケージを含む環境で`--from-history`を実行すると`CondaValueError: Requested package 'numpy' is not found in 'explicit_packages'.`で失敗しました。ここでも「pipは最後に、混ぜない」が効いてきます。

## conda以外の選択肢：uv・Pixi・conda-pypi

pip側の高速化なら[uvとは？Pythonの環境構築・パッケージ管理・バージョン管理の使い方を徹底解説](/tech/details/4384/)で扱っているuv（最新0.13.1）が第一候補です。pip・venv・pyenvの役割を1つにまとめています。conda側では[Pixiとは？Python・conda対応のパッケージ管理ツールの使い方とuv・condaとの違い](/tech/details/9892/)で扱っているPixi（最新0.82.0）が、conda-forgeのパッケージとPyPIのパッケージを1つのロックファイルで管理でき、本記事で見た「混ぜると壊れる」問題を道具の側で避けられます。

conda本体も変わっています。[conda 26.9以降](https://docs.conda.io/projects/conda/en/stable/user-guide/tasks/install-packages-from-pypi.html)は、PyPIの純粋なPythonパッケージ（wheel）をcondaパッケージと一緒に解決して入れる機能（conda-pypi）を持ちます。conda-pypi自体は26.9で安定版になりましたが、必要なrattlerソルバはまだベータで、26.10で既定になる予定です。検証したconda 26.7.2でも、`conda install`の後に「conda-pypi beta」を案内するメッセージが出ました。rattlerソルバがベータのうちは、本番の環境定義ではpip欄を使う方法が確実です。

## condaとpip・Anacondaに関するよくある質問

### condaとpipの違いは何ですか？どちらを使うべき？

pipはPyPIからPythonパッケージを入れるインストーラ、condaはPython本体やC/C++ライブラリまで含めて環境を管理するツールです。依存の矛盾が既存パッケージとの間で起きたとき、pipは警告を出して入れてしまい、condaは他のパッケージも上げ下げして環境全体を揃えます。データ分析・機械学習ならconda、Webアプリやスクリプトならpip（venvかuvと組み合わせる）が目安です。

### Anaconda・conda・Miniconda・Miniforgeの違いは？

condaはパッケージと環境を管理するツールで、Anacondaはcondaと数百のライブラリ・Navigatorなどを同梱した配布物です。Minicondaはcondaと最小限のPythonだけ、MiniforgeはMinicondaに近い軽量版で、既定チャネルがconda-forgeになっていてmambaも入っています。

### Anacondaやcondaは商用利用で有料ですか？

condaとconda-forgeは無料です。Anaconda社のdefaultsチャネルやAnaconda Distributionを、関連会社を含めて従業員・請負人が200人を超える営利組織で使う場合は、Business Planの契約が必要です。無料で使うならMiniforgeとconda-forgeを選びます。pipとPyPIも無料です。規約は改定されることがあるため、導入前に最新の条文を確認してください。

### condaとpipは併用できますか？注意点は？

併用はできますが、順序を守ります。condaで入れられるものを先に全部入れ、最後にpipを使います。pipのあとでconda installすると、pipで入れた版の上にcondaが別の版を書き込み、表示と実際の版が食い違うことがあります。pipを使った環境では`conda doctor`で不整合を確認し、condaパッケージを足す必要が出たら環境を作り直します。

### Anaconda Promptとは何ですか？使い方は？

AnacondaやMinicondaをWindowsに入れると追加される、condaへのパスが通った状態で起動するコマンドプロンプトです（Miniforgeでは「Miniforge Prompt」）。スタートメニューから開き、`conda create`や`conda activate`を実行します。PowerShellで使いたい場合は、このプロンプトで`conda init powershell`を実行してからPowerShellを開き直します。

## 関連記事

- [uvとは？Pythonの環境構築・パッケージ管理・バージョン管理の使い方を徹底解説](/tech/details/4384/)
- [Pixiとは？Python・conda対応のパッケージ管理ツールの使い方とuv・condaとの違い](/tech/details/9892/)
- [仮想環境とは？venv・コンテナ・仮想マシンの違いと隔離レベルの選び方を実装者向けに解説](/tech/details/13536/)
- [Jupyter Notebookのインストール手順｜7.6系をpip・uv・condaで入れる方法](/tech/details/17961/)
- [pyenvでPythonのバージョンを切り替える手順｜shimの仕組みとビルド失敗の対処](/tech/details/17513/)

---

出典: [pipとcondaの違いと使い分け｜混ぜると壊れる理由とAnaconda・Miniforgeの選び方](<https://www.issoh.co.jp/tech/details/7775/>)（株式会社一創）
