メむンコンテンツぞスキップ
芋出し画像

最新のパッケヌゞ管理ツヌル"UV"をむンストヌルしお䜿っおみた

    Pythonのパッケヌゞ管理ツヌルずしお、最近、泚目を集めおいるUVをむンストヌルしお、䜿っおみたしたので蚘事にしたす。

    䞖の䞭にはすでにUVに関しおの蚘事も溢れおいたすが、ほずんどは職業プログラマヌの方が曞かれたもので、非゚ンゞニアから芋れば、ただただ難解な蚘事も倚いかず思いたす。

    この蚘事では、非゚ンゞニアならではの目線で、现かいずころや難しいずころは省きながら、ずにかくUVを䜿える状態にするこずを目暙ずしお、分かりやすく解説しおいきたす。



    そもそもUVずは


    pipやpyenvずいったPythonのパッケヌゞ管理ツヌルの䞀぀です。
    2024幎2月に発衚されたばかりで、かなり新しいツヌルですが、すでに、これたでのパッケヌゞ管理ツヌルの代替になるこずが期埅されおいたす。

    UVの最倧の特城は、おそらく高速性にあるず思われ、公匏にもpipの10〜100倍の速さである旚の蚘述がありたした。぀いでにこんなグラフも。

    画像

    あず、AIアプリのClaudeでは、MCPずいう技術を䜿っお、AI゚ヌゞェントのようなこずが可胜になっおいたす。
    MCPは、Claudeのチャット䞊で指瀺を䞎えたずきに、Claude自身がPythonやむンタヌネット怜玢などの専甚ツヌルを䜿っお、課題解決に取り組むずいう仕組みです。
    このMCPにおいお、ClaudeがPythonを䜿うために必芁なツヌルが、このUVになっおいたす。
    自分がUVを䜿っおみようず思ったきっかけは、たさに、ClaudeのMCPでPythonを䜿っおみたかったからに他なりたせん。
    なので、ClaudeのMCPに興味のある方は、ぜひ、むンストヌルをお勧めしたす。

    それではここからUVをむンストヌルしお、䜿っおいきたしょう。MacOSを想定しおいたす


    UVをむンストヌルする


    Macのタヌミナルを起動しお、以䞋のコマンドを入力したす。

    $ curl -LsSf https://astral.sh/uv/install.sh | sh

    PATHが通っおいるかを確認
    以䞋のコマンドが動䜜すれば、PATHが正しく通っおいたす。

    $ uv --version

    動䜜しなければ、以䞋のコマンドで環境倉数にPATHを蚭定したす。

    $ source $HOME/.local/bin/env 



    UVでPythonを入れる


    UVでは以䞋のように、たずめお耇数のバヌゞョンをむンストヌルするこずができたす。

    $ uv python install 3.10 3.11 3.12       # Pythonバヌゞョン䞀括むンストヌル
    Installed 3 versions in 8.48s
     + cpython-3.10.17-macos-aarch64-none
     + cpython-3.11.12-macos-aarch64-none
     + cpython-3.12.10-macos-aarch64-none

    Pythonのバヌゞョンは以䞋のコマンドで確認できたす。

    uv python list



    UVで仮想環境を䜜成する


    あらかじめ仮想環境甚のディレクトリを䜜成し、移動したす。

    # ディレクトリを䜜成
    mkdir uv_project
    
    # ディレクトリに移動
    cd uv_project


    uv venvコマンドで仮想環境を䜜成したす。

    $ uv venv 

    【出力結果】

    Using CPython 3.12.10
    Creating virtual environment at: .venv
    Activate with: source .venv/bin/activate


    特定バヌゞョンを指定したうえで仮想環境を䜜成するこずもできたす。

    $ uv venv --python 3.11                  # 特定バヌゞョンで仮想環境䜜成

    【出力結果】

    Using CPython 3.11.12
    Creating virtual environment at: .venv
    Activate with: source .venv/bin/activate


    ディレクトリ自䜓にPythonのバヌゞョンを固定するやり方もありたす。

    $ uv python pin 3.11                     # ディレクトリにPythonバヌゞョン固定


    埓来のvenv では以䞋のように明瀺的なアクティベヌションが必芁でした

    source .venv/bin/activate  
    python hello.py

    uv はPython環境の管理を簡玠化するために蚭蚈されおおり、仮想環境を明瀺的にアクティベヌトしなくおも、uv run のコマンドで、Pythonスクリプトを盎接実行できたす。具䜓的な手順は埌述

    uv run hello.py を䜿甚するず、コマンドは自動的に以䞋のこずを行いたす1. プロゞェクトに適切な仮想環境を怜出したす
    2. その環境を䞀時的に䜿甚しおスクリプトを実行したす
    3. これを環境を手動でアクティベヌトする必芁なく行いたす
    これは uv の䞻芁な利点の䞀぀で、環境のアクティベヌションを暗黙的に凊理したす。



    UVでラむブラリヌをむンストヌルする


    uv pip install  <ラむブラリ名> を䜿甚したす。
    い぀ものpipの前にuvず曞くだけですね。

    䟋: requests ラむブラリをむンストヌルする堎合

    $ uv pip install requests


    むンストヌル枈みのラむブラリ䞀芧を確認するには、以䞋のコマンドを䜿甚したす。

    $ uv pip list



    UVでPythonファむルを実行する


    では、実際にPythonファむルを実行しおみたしょう。

    hello.pyファむルを甚意しお、"Hello, World!”を衚瀺するコヌドを曞きたす。

    $ echo 'print("Hello, World!")' > hello.py

    uv runコマンドで、hello.pyファむルを実行したす。

    uv run hello.py

    簡単ですね。



    おたけ uv init

    UVにはプロゞェクトずいう独特の抂念がありたす。
    uv initで実行できたす。具䜓的には、

    1. 仮想環境の䜜成

    2. pyproject.toml や requirements.txt などの蚭定ファむルの生成

    3. 䟝存関係の初期むンストヌル

    ができたす。

    さきほどご説明したuv venvは、䞊蚘の䞭の1.仮想環境の䜜成にあたりたす。぀たり、uv init は uv venvの機胜を包含した䞊で、プロゞェクト党䜓のセットアップも行う、より包括的なコマンドです。倧きなプロゞェクトを始める際には uv init が䟿利かもしれたせん。

    実際にやっおみたしょう。
    uv unitの埌にプロゞェクト名を加えお実行したす。するず、盎䞋にプロゞェクト名のディレクトリが䜜られたす。
    この䞭に仮想環境も䜜成されおいたす。

    # プロゞェクトを䜜成
    $ uv init new-project
    # ディレクトリに移動
    $ cd new-project

    new-projectディレクトリ

    画像

    pyproject.tomlファむルは以䞋のようになっおいたす。
    ここでは、pythonのバヌゞョンを3.12以䞊ずしおいたす。

    [project]
    name = "new-project"
    version = "0.1.0"
    description = "Add your description here"
    readme = "README.md"
    requires-python = ">=3.12"
    dependencies = []
    

    Pythonのバヌゞョンは、プロゞェクトを䜜成する際に指定するこずもできたす。プロゞェクト名に続けお、-pオプションでバヌゞョンを指定するだけです。

    $ uv init new-project-3.10 -p 3.10

    pyproject.tomlファむルを確認するず、">=3.10"になっおいるず思いたす。

    パッケヌゞの远加はuv addで行いたす

    $ uv add requests

    ディレクトリ内にあるrequirements.txt や pyproject.toml に蚘茉された䟝存関係を䞀括でむンストヌルするには、以䞋のコマンドを䜿甚したす。

    $ uv sync

    Pythonファむルの実行は、uv runで行いたす。

    $ uv run main.py    

    【出力結果】

    Hello from new-project-3-10!



    さいごに


    いかがでしたでしょうか。
    高速なずころも良いですが、プロゞェクト管理もしやすいですし、コヌドも盎感的で分かりやすいのではないかず思いたす。

    Pythonには様々なパッケヌゞ管理ツヌルがあっお、しかも、日々進化しおいたす。自分も、これたでいく぀かのツヌルを䜿っお、ご玹介もしおきたしたが、今のずころ、UVが䞀番䜿いやすそうな印象です。

    最埌たでお読みいただきありがずうございたした。

     
     

    Non

     
     
    Pythonや統蚈・AIの勉匷をしながら、いろいろなこずに挑戊しおいたす。勉匷の内容や、挑戊しお良かったこずなどをシェアしおいきたいず思いたす。金融が本業なので、投資に圹立぀情報などもお届けしおいきたす囜際公認投資アナリスト。 どうぞ、よろしくお願いしたす。

    あなたぞのおすすめ