1
4

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の使い方

Last updated at Posted at 2025-03-29

uvは、Pythonのパッケージ管理やプロジェクト管理をサポートするツールで、WindowsおよびLinux環境で使用できます。以下に、各環境でのインストール手順まとめます。

1. Windowsでのインストール手順:

  1. PowerShellを管理者として実行:

    • スタートメニューを開き、「PowerShell」と入力します。
    • 表示された「Windows PowerShell」を右クリックし、「管理者として実行」を選択します。
  2. インストールスクリプトの実行:

    • 以下のコマンドをPowerShellに入力し、実行します。
      powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
      
    • このコマンドは、install.ps1 スクリプトをダウンロードし、実行します。

    注意点:

    • Windows環境では、PowerShellの実行ポリシーがスクリプトの実行を制限している場合があります。その際は、上記のコマンドで-ExecutionPolicy ByPassオプションを指定することで回避できます。

2. Linuxでのインストール手順:

  1. ターミナルを開く:

    • 使用しているディストリビューションに応じてターミナルを起動します。
  2. インストールスクリプトの実行:

    • 以下のコマンドをターミナルに入力し、実行します。
      curl -LsSf https://astral.sh/uv/install.sh | sh
      
    • もしcurlがインストールされていない場合、wgetを使用できます。
      wget -qO- https://astral.sh/uv/install.sh | sh
      
    • これらのコマンドは、install.sh スクリプトをダウンロードし、実行します。

基本的な使い方:

  • バージョン確認:

    • インストールが成功したか確認するため、以下のコマンドでバージョン情報を表示します。
      uv version
      
  • パッケージのインストール:

    • プロジェクトの依存関係をインストールするには、プロジェクトディレクトリ内で以下のコマンドを実行します。
      uv sync
      
    • 特定のパッケージをインストールする場合は、以下のように実行します。
      uv add パッケージ名
      

3. プロジェクトの作成

  1. プロジェクトディレクトリの作成と移動:

    • ターミナルまたはPowerShellで、以下のコマンドを実行してプロジェクトディレクトリを作成し、その中に移動します。
      uv init my_project
      cd my_project
      
  2. プロジェクト構成の確認:

    • uv initコマンドを実行すると、以下のようなディレクトリ構成が作成されます。
      .
      ├── README.md
      ├── pyproject.toml
      └── src
          └── my_project
              └── __init__.py
      
    • pyproject.tomlには、プロジェクトのメタデータや依存関係が記述されています。

4. 仮想環境の構築

  • 仮想環境の作成:
    • uvはプロジェクト作成時に自動的に仮想環境を構築します。以下のコマンドで仮想環境を確認できます。
      uv venv
      
    • 仮想環境が表示されれば、正常に作成されています。

5. パッケージの追加

  1. パッケージの追加:

    • プロジェクトに依存関係を追加するには、uv addコマンドを使用します。例えば、requestsパッケージを追加する場合、以下のコマンドを実行します。
      uv add requests
      
    • これにより、pyproject.tomldependenciesセクションにrequestsが追加され、仮想環境にインストールされます。
  2. 依存関係の同期:

    • 追加した依存関係を仮想環境に反映させるには、以下のコマンドを実行します。
      uv sync
      
    • これにより、pyproject.tomlの依存関係が仮想環境にインストールされます。

6. プロジェクトの実行

  • Pythonファイルの実行:
    • プロジェクト内のPythonファイルを実行するには、以下のコマンドを使用します。例えば、hello.pyを実行する場合、
      uv run hello.py
      
    • これにより、仮想環境内でhello.pyが実行されます。

7. その他の便利なコマンド

  • 依存関係の削除:

    • プロジェクトから依存関係を削除するには、uv removeコマンドを使用します。例えば、requestsを削除する場合、以下のコマンドを実行します。
      uv remove requests
      
    • これにより、pyproject.tomlからrequestsが削除され、仮想環境からもアンインストールされます。
  • 依存関係ツリーの表示:

    • プロジェクトの依存関係ツリーを表示するには、以下のコマンドを実行します。
      uv tree
      
    • これにより、現在のプロジェクトの依存関係がツリー形式で表示されます。

注意点:

  • uvは仮想環境の作成や依存関係の管理を効率化しますが、プロジェクトによっては追加の設定やツールが必要な場合があります。プロジェクトの要件に応じて適切に設定を行ってください。

追記:

uvを使用して、Pythonスクリプト内でPythonのバージョン情報を表示する方法をご紹介します。以下の手順に従ってください。

1. Pythonスクリプトの作成

プロジェクトディレクトリ内にhello.pyという名前のPythonスクリプトを作成し、以下の内容を記述します。

import sys

def main():
    # Pythonのバージョン情報を表示
    print("Python Version:")
    print(sys.version)

if __name__ == "__main__":
    main()

2. スクリプトの実行

ターミナルまたはコマンドプロンプトで、以下のコマンドを実行してスクリプトを実行します。

uv run hello.py

期待される出力例:

Python Version:
3.8.5 (default, Oct  1 2020, 21:43:36)
[Clang 11.0.3 (clang-1103.0.32.62)]

補足情報:

  • sys.versionは、実行中のPythonインタプリタのバージョン情報を文字列として返します。
  • より詳細なバージョン情報を取得したい場合は、sys.version_infoを使用することもできます。
import sys

def main():
    version_info = sys.version_info
    print(f"Python Version Info: {version_info.major}.{version_info.minor}.{version_info.micro}")

if __name__ == "__main__":
    main()

出力例:

Python Version Info: 3.8.5

これらの方法を用いて、Pythonスクリプト内でPythonのバージョン情報を取得・表示することができます。

1
4
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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?