conda環境でのマジックコマンド使用時のパッケージインストールとバージョン確認の備忘録
1. Notebook内での環境管理について
1-1. conda環境をNotebookで使うための初期設定
- conda環境を作成・アクティブ化(ターミナルで1回だけ実施)
例:conda create -n myenv python=3.11 conda activate myenv
- Jupyterカーネルとして登録
Notebook上で「myenv」を選択できるようにするには、以下のようなコマンドを実行しておきます:conda install -n myenv ipykernel python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
これにより、「Python (myenv)」という名前でJupyter Notebookからカーネルを選択できるようになります。
1-2. Notebookカーネルだけでパッケージを追加・管理
- ターミナル操作を行わずに、Notebookセル内のコマンドでパッケージインストールやバージョン確認をする
%pip install
(マジックコマンド) が推奨- Jupyterカーネルが実行しているPython環境に直接インストールされるため、環境のズレが起きにくい。
!pip install
(シェル経由) は非推奨- ターミナルのシステム環境や別のPython環境に誤ってインストールされるリスクがある。
2. Notebook内でのパッケージインストールの違いと具体例
コマンド形式 | 使用例 | 特徴・挙動 |
---|---|---|
!pip install |
!pip install some-package |
シェル経由で実行されるため、場合によってはNotebookカーネルで使用しているconda環境と異なる環境にインストールされる可能性がある。 |
%pip install |
%pip install some-package |
IPythonマジックとして実行されるため、必ず現在のNotebookカーネル(conda環境)にインストールされる。挙動が安定しており推奨される。 |
2-1. 推奨される方法:%pip install
の例
# 現在のNotebookカーネルに直接インストールされる
%pip install pandas
この方法を使えば、Notebookカーネルが利用しているconda環境に確実にパッケージが追加されるため、以降のセルでインポートが正しく動作します。
2-2. 注意が必要な方法:!pip install
の例
# シェル経由で実行されるため、Notebookカーネルと異なる環境にインストールされるリスクがある
!pip install pandas
この場合の注意点:
- Notebookカーネルが使用しているPython環境と、シェルのデフォルト環境が異なる場合、
!pip install
でインストールされたパッケージはカーネルに反映されません。 - 結果として、以下のようなエラーが出る可能性があります。
import pandas # ModuleNotFoundError が発生
- 複数のPython環境があるシステムでは、
!
を使うと意図しない環境にインストールされやすいので要注意。
3. Notebook内でのバージョン確認の違い
コマンド形式 | 使用例 | 特徴・挙動 |
---|---|---|
!pip --version |
!pip --version |
シェル経由で実行されるため、Notebookカーネル外のpipバージョンが表示される場合がある。 |
%pip --version |
%pip --version |
IPythonマジックとして実行され、Notebookカーネル内のpipバージョンが表示される。一貫性が保たれる。 |
3-1. バージョン確認の実例
# 推奨: 現在のNotebookカーネル内のpipバージョン確認
%pip --version
Pythonの実行環境を確認するコード例:
import sys
print("Pythonパス:", sys.executable)
print("Pythonバージョン:", sys.version)
これらを組み合わせると、「どのPythonを使っていて、どのpipが使われているか」が一目で分かります。
4. conda install
と pip install
の使い分け
conda環境では、本来「condaパッケージチャネル(公式 / conda-forgeなど)にあるパッケージ」は conda install パッケージ名
で入れるほうが依存関係の管理がスムーズです。
ただし、Jupyter Notebookから直接 conda install
を実行する標準マジックコマンドはありません。
そのため、
-
ターミナルで作業 (推奨)
conda activate myenv
conda install numpy pandas matplotlib
- その後にNotebookを起動し、カーネルとして「Python (myenv)」を選択する。
-
どうしてもNotebookだけで完結させたい場合
!conda install パッケージ名
などを試すとシェルコマンド実行になり、環境がずれるリスクがあります。- 使うなら
conda run -n myenv conda install パッケージ名
といった指定が必要ですが、慣れていないと混乱しやすいです。 - そのため、本メモでは「Notebook内でcondaパッケージをインストールする」よりは、pipパッケージをインストールする場面を主に扱います。
5. Notebook内でのパッケージ管理ワークフロー
5-1. パッケージのインストール例
Notebook内でnumpy
、pandas
、matplotlib
などを「pipから」インストールする場合:
%pip install numpy pandas matplotlib
5-2. インストール後のバージョン確認
import numpy
import pandas
import matplotlib
print("numpy:", numpy.__version__)
print("pandas:", pandas.__version__)
print("matplotlib:", matplotlib.__version__)
もしconda install
が必要なパッケージ(またはcondaチャネルのほうが安定するパッケージ)を使うなら、一度ターミナルに戻り、conda install
するのが安全です。
6. まとめ:Notebookだけで快適に環境管理するための5つのルール
-
conda環境をJupyterで使うなら、まずカーネルを登録
ipykernel
をインストールしてpython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
を忘れずに。
-
パッケージのインストールは基本的に
%pip install
を使用する- Notebookカーネルに対して直接作用し、環境のズレを防げる。
-
バージョン確認も
%pip --version
を活用!pip --version
は別Python環境を見ている可能性があるので注意。
-
condaチャネルにあるパッケージはターミナルから
conda install
を使うほうが依存関係が安定- Notebook上でcondaコマンドを直接使うには工夫が必要(非推奨)。
-
!
を使う場合はリスクを理解する- シェル経由で実行され、意図しないPython環境に影響を与える恐れがある。