uvの使い方

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

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

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

2. **インストールスクリプトの実行**:
   - 以下のコマンドをPowerShellに入力し、実行します。
     ```powershell
     powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
     ```
   - このコマンドは、`install.ps1` スクリプトをダウンロードし、実行します。
 
    **注意点**:
    - Windows環境では、PowerShellの実行ポリシーがスクリプトの実行を制限している場合があります。その際は、上記のコマンドで`-ExecutionPolicy ByPass`オプションを指定することで回避できます。


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

1. **ターミナルを開く**:
   - 使用しているディストリビューションに応じてターミナルを起動します。

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

**基本的な使い方**:

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

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


**3. プロジェクトの作成**

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

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

**4. 仮想環境の構築**

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

**5. パッケージの追加**

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

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

**6. プロジェクトの実行**

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

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

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

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

**注意点**:

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


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

**1. Pythonスクリプトの作成**

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

```python
import sys

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

if __name__ == "__main__":
    main()
```

**2. スクリプトの実行**

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

```bash
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`を使用することもできます。

```python
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のバージョン情報を取得・表示することができます。