はじめに
こんにちは、慶應義塾大学理工学部機械工学科3年の金賢佑です!
私は東大発AIベンチャーの株式会社2WINSの元でインターンをしています!
これからの記事では自分がインターンを通して最強のAIエンジニアを目指していきます!
第一回はuvの基礎を記録しました!
uvとは
uvとは2024年に発表された、パッケージ管理ツールです。Rust製でpipの代替ツールとして登場しました。
画像にあるようにpipよりも処理速度が断然速いですね。
パッケージ管理ツールとは?そもそもパッケージとは??
パッケージとは、様々なモジュールをまとめたものです。
モジュールとは、(.py)などのプログラムファイルやドキュメントを含みます。
そんなパッケージですが、実は、それぞれは独立して存在するわけではなく互いに依存関係があることが多いのです。
例えば、
「パッケージAを実行するためには、パッケージBが必要で、パッケージBを実行するにはパッケージCが必要で....」
といった様にです。
パッケージ管理システムとはそうしたパッケージ同士の依存関係を把握し、必要なものを取り揃えてくれます!優秀!
もし、パッケージ管理システムがなければ、自分で必要なモジュールをとってこなくてはならないわけですから、とても大変ですね。
uv使ってみた
まずはuvをインストールしていきましょう。
terminalで以下のコマンドを入力してみます。
$ curl -LsSf https://astral.sh/uv/install.sh | sh
everything's installed!と出てきたら大丈夫です。
では、ここから少しuvを使ってみます。
テンプレートを作成
例えば、
$ uv init example
はテンプレートを作成するコマンドです。
$ ls
README.md main.py pyproject.toml uv.lock
の時、上記 $ uv init example を行うことによって
$ uv init example
$ ls
README.md example main.py pyproject.toml uv.lock
テンプレートexample
が作成されましたね。
exampleの中には
$ cd example
$ ls
README.md main.py pyproject.toml
などがありますね。
README.md
にはプロジェクトの説明などが書かれています。
main.py
にはPythonプロジェクトにおけるエントリーポイントがあります。エントリーポイントとは一番最初に呼び出されるプログラムのことです。
ちなみにmain.py
にはデフォルトで以下のコードが記述されています。
if __name__ == "__main__":
main()
これは他のモジュールでインポートされて使われた時にmain()の実行部分が使用されないようにするためです。
pyproject.toml
にはプロジェクト名やバージョンなどが書かれています。
仮想環境のセットアップ
$ uv sync
により仮想環境がセットアップされます。
このコマンドではuv.lock
とpyproject.toml
に書かれているパッケージの依存関係も考慮してくれます。
最初に話したバージョン管理の話ですね。
pyproject.toml
にある情報とuv.lock
のキャッシュとの間に差が会った時など自動で解消してくれます。
まとめ
今回はuvをインストールし、実際にテンプレートを作成したり、仮想環境を構築してみました!
次回からはlangchainなども扱っていきたいと思います。
おまけ
下記コマンドでVScodeに移動。
$ code <フォルダ>
Xcodeだったら
$ xed <フォルダ>
となる。
ファイルを削除するとき、空のディレクトリであれば
$ rmdir <フォルダ>
で良いのだが、最下層ではない場合は再起的な消去が必要となり、そのコマンドは
$ rm -r <フォルダ>
となる。