0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

パッケージ管理ツールuvでデータ分析環境を構築する

Posted at

はじめに

この記事では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に移動して実行すると、.venvuv.lockが生成される。uv.lockはインストールしたパッケージ等が記載されるファイルだが、詳細は割愛。

ii) uvコマンドで直接作る

もちろんuvコマンドで直接作ることもできる。その場合は

uv venv <環境名>

とすると入力した環境名で.venvが生成される。uv.lockは生成されないが、後でパッケージをインストールした段階で生成されるので、どのみち気にしなくてよい。

これで分析環境となるプロジェクトenv1と仮想環境.venvを作成できた。

2. 仮想環境内の操作

仮想環境の起動

ベースになるプロジェクトを作ったので、env1に入って仮想環境を起動しよう。Powershellで

powershell
. ./.venv/Scripts/activate

もしくは

powershell
./.venv/Scripts/activate

とコマンドを打つと仮想環境を起動するスクリプトが走る。画像のように(env1)と表示されれば成功となる。

スクリーンショット 2024-10-10 222631.png

仮想環境を終了する場合は、

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

で現在どのバージョンがインストールされているか確認できる。

スクリーンショット 2024-10-10 231520.png

画像では3.12がインストールされている。例えば3.10もインストールしたい場合は

uv python install 3.10

と打てばインストールされる。

スクリーンショット 2024-10-10 232212.png

そのうえで、3.10に切り替えたいなら

uv python pin 3.10

とすれば切り替わる。
ただし、プロジェクト作成時のバージョンが切り替えたいバージョンより新しいとき、pyproject.tomlを書き換えなくてはならない。今回は特にバージョン指定せずプロジェクトを作ったので、pyproject.tomlのバージョンに関する記述は以下のようになっている。

pyproject.toml
・・・

requires-python = ">=3.12"

・・・

これをrequires-python = ">=3.10"と書き換えることで、プロジェクトは3.10以上のバージョンにも切り替えられるようになる。

この記事の通り、現在uvでPythonをインストールしてもグローバルでは使えない。(仮想環境を立ち上げずにpythonコマンドが使えるようにはならない)

3. カーネルの選択

最後に分析で使うカーネルを選択する。選択の前に分析で使うipynbファイルを作成しておく。今回はenv1/sample.ipynbとした。
手順としては、sample.ipynbを開いた状態で

  1. VSCodeの右上にある「カーネルの選択」をクリック
  2. 出現したタブから、作成したvenvを選択する(env1\.venv\Scripts\python.exe

スクリーンショット 2024-10-12 204808.png

なお、どのカーネルが選択されているかは

import sys
sys.executable

で確認できる。

これで分析を始める準備は整った。冒頭で書いたように、実際に分析が始められそうかをライブラリのバージョンを表示させて分析準備を完了させよう。

import pandas as pd
pd.__version__

スクリーンショット 2024-10-14 014356.png

※カーネル選択時の注意点

初めて環境を作成した後に「カーネルの選択」をクリックすると、開いたタブに今作ったvenvが出てこないことがある。しかも、検索窓に使いたいカーネルのパス(例えばenv1\.venv\~~)と入力しても表示されない。

原因はVSCodeが現在開いているフォルダをワークスペースとして認識しているからとなる。その時使いたい環境を直下にして(今回はenv1)VSCodeを開きなおすことで、env1下にあるさっき作成したvenvを選択できるようになる。なお、一度選択して使ってしまえば履歴から選べるようになるので初回のみの注意事項となる。

  • my_pythonを開いている場合
    スクリーンショット 2024-10-14 005413.png

  • env1を開いている場合(imgは筆者作成)
    スクリーンショット 2024-10-14 005745.png
    VSCodeでenv1を直接開けば選択できる。

おわりに

今回はuvでデータ分析環境を構築する方法を最低限必要なuvコマンドとともに紹介した。まだまだ便利な機能がたくさんあるので、ぜひ調べて使ってみてほしい。uvはpipやcondaよりライブラリのインストールが早く、環境管理も(筆者にとっては)わかりやすい。今後のスタンダードになっていくのではないかと思っている。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?