はじめに
この記事ではPythonのパッケージ管理ツールであるuvで仮想環境を構築し、VSCode上でipynbファイルを実行できるようにするまでの流れをまとめる。前提としてuvは ver0.4.6 インストール済み、Windows11環境での作業となる。今回はデータ分析や機械学習モデルの開発でよく使われるpandasについて、ipynbファイルで以下のコードを実行してpandasのバージョンを表示させることを目標にする。
import pandas as pd
pd.__version__
1. 仮想環境の構築
早速データ分析ができる環境を作っていきたい。まずは分析環境となるプロジェクトと、そこで使う仮想環境をuvコマンドで作成しよう。今回はmy_python
と名付けたディレクトリにenv1
というプロジェクトを作りたいので、以下のコマンドをmy_python
で実行する。
uv init env1
すると、env1
というディレクトリと
.python-version
hello.py
pyproject.toml
README.md
が生成される。(まだuvでPythonをインストールしていなければ最新のバージョンがインストールされる。)
さて、ここから仮想環境を作る方法は2通りある。
i) pyファイルを実行する
先ほど生成されたhello.py
、もしくは自身でpyファイルを作成してそれをuvコマンドで実行するという方法。uvでpyファイルを実行するコマンドは以下の通り。
uv run hello.py
これをenv1
に移動して実行すると、.venv
とuv.lock
が生成される。uv.lock
はインストールしたパッケージ等が記載されるファイルだが、詳細は割愛。
ii) uvコマンドで直接作る
もちろんuvコマンドで直接作ることもできる。その場合は
uv venv <環境名>
とすると入力した環境名で.venv
が生成される。uv.lock
は生成されないが、後でパッケージをインストールした段階で生成されるので、どのみち気にしなくてよい。
これで分析環境となるプロジェクトenv1
と仮想環境.venv
を作成できた。
2. 仮想環境内の操作
仮想環境の起動
ベースになるプロジェクトを作ったので、env1
に入って仮想環境を起動しよう。Powershellで
. ./.venv/Scripts/activate
もしくは
./.venv/Scripts/activate
とコマンドを打つと仮想環境を起動するスクリプトが走る。画像のように(env1)
と表示されれば成功となる。
仮想環境を終了する場合は、
deactivate
と打つ。
ライブラリのインストール
さて、ここまでの手順で初めて作った環境ならばまだライブラリは何もインストールされていないはずである。今どんなライブラリが入っているかは
uv pip list
で確認できるので、コマンド実行後に何も表示されないことを一応確認してほしい。今回はpandasを使うことが決まっているのであらかじめ入れておこう。
uv add pandas
で最新バージョンをインストール、もしくは
uv add "pandas==2.1.4"
とやればバージョンを指定してインストールできる。ちなみに削除したい場合は
uv remove pandas
となる。
また、ipynbファイルを使うのでipykernelも入れておく。(uv add ipykernel
)
Pythonバージョンの変更
使いたいライブラリが仮想環境のPythonのバージョンに対応していないことはよくある。現在のPythonのバージョンを知りたいならpython -V
等で確認できる。また、
uv python list
で現在どのバージョンがインストールされているか確認できる。
画像では3.12がインストールされている。例えば3.10もインストールしたい場合は
uv python install 3.10
と打てばインストールされる。
そのうえで、3.10に切り替えたいなら
uv python pin 3.10
とすれば切り替わる。
ただし、プロジェクト作成時のバージョンが切り替えたいバージョンより新しいとき、pyproject.toml
を書き換えなくてはならない。今回は特にバージョン指定せずプロジェクトを作ったので、pyproject.toml
のバージョンに関する記述は以下のようになっている。
・・・
requires-python = ">=3.12"
・・・
これをrequires-python = ">=3.10"
と書き換えることで、プロジェクトは3.10以上のバージョンにも切り替えられるようになる。
この記事の通り、現在uvでPythonをインストールしてもグローバルでは使えない。(仮想環境を立ち上げずにpythonコマンドが使えるようにはならない)
3. カーネルの選択
最後に分析で使うカーネルを選択する。選択の前に分析で使うipynbファイルを作成しておく。今回はenv1/sample.ipynb
とした。
手順としては、sample.ipynb
を開いた状態で
- VSCodeの右上にある「カーネルの選択」をクリック
- 出現したタブから、作成したvenvを選択する(
env1\.venv\Scripts\python.exe
)
なお、どのカーネルが選択されているかは
import sys
sys.executable
で確認できる。
これで分析を始める準備は整った。冒頭で書いたように、実際に分析が始められそうかをライブラリのバージョンを表示させて分析準備を完了させよう。
import pandas as pd
pd.__version__
※カーネル選択時の注意点
初めて環境を作成した後に「カーネルの選択」をクリックすると、開いたタブに今作ったvenv
が出てこないことがある。しかも、検索窓に使いたいカーネルのパス(例えばenv1\.venv\~~
)と入力しても表示されない。
原因はVSCodeが現在開いているフォルダをワークスペースとして認識しているからとなる。その時使いたい環境を直下にして(今回はenv1
)VSCodeを開きなおすことで、env1
下にあるさっき作成したvenv
を選択できるようになる。なお、一度選択して使ってしまえば履歴から選べるようになるので初回のみの注意事項となる。
おわりに
今回はuvでデータ分析環境を構築する方法を最低限必要なuvコマンドとともに紹介した。まだまだ便利な機能がたくさんあるので、ぜひ調べて使ってみてほしい。uvはpipやcondaよりライブラリのインストールが早く、環境管理も(筆者にとっては)わかりやすい。今後のスタンダードになっていくのではないかと思っている。