Windows 11 で pyコマンド（Python Launcher for Windows）を使った仮想環境構築【Python-2】

この記事は、「[Python Advent Calendar 2024](https://qiita.com/advent-calendar/2024/python)」の 16日目の記事です。

## はじめに
Python Advent Calendar 2024 の 15日目に以下を書き、その際は Mac を使っていました。

●Microsoft の「MarkItDown」で Officeファイルを Markdownファイルに変換【Python】 - Qiita
 https://qiita.com/youtoy/items/e0495701f03c1875e032

自分が Python を使う環境は Windows もあり、その際に環境によっては pyコマンド（Python Launcher for Windows）を使うこともあるのですが、たまに使っては細かな部分を忘れている気がしています。

それで、自分用のメモとしてこの記事を書きます。

## pyコマンド（Python Launcher for Windows）とは？
pyコマンドについて公式の情報を見ていきます。

### 公式ドキュメントの情報
公式ドキュメントの記載を見ていきます。

#### 導入
Windows用のインストーラで Python をインストールする際、カスタマイズをせず「"Install Now"」のほうを選んで、設定を変えずにインストールしていくと自然と利用可能な状態になっているかと思います。

●4. Windows で Python を使う — Python 3.13.1 ドキュメント
 https://docs.python.org/ja/3/using/windows.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/c8b1535d-3d3f-9ed7-ecde-eeae2c841d8c.png)

#### pyコマンド（Python Launcher for Windows）に関するページ
また公式の pyコマンド（Python Launcher for Windows）に関するページは以下になるかと思います。

●4. Windows で Python を使う — Python 3.13.1 ドキュメント
 https://docs.python.org/ja/3/using/windows.html#launcher
●4. Using Python on Windows — Python 3.13.1 documentation
 https://docs.python.org/3/using/windows.html#launcher

冒頭部分に、基本的なコマンドの一部が掲載されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/1d92f207-a7cd-4c2e-057c-e33939f4b948.png)

自分の環境でバージョン確認のコマンドを入れると、以下の出力が得られます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/e5e74b37-ebca-7ef9-c3b6-746bc668e6cf.png)

`--list` をつけて実行した時の結果は、このような感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/499b0eff-9031-77d7-942a-98b2e9b50e25.png)

インストーラで 3.13 のみを入れた直後なので、他バージョンはリストに出てなく、また 3.13 を実行できる状態になっています。

なお、デフォルト設定でインストールを進めていれば、pyコマンドはパスが通った状態になっているかと思います。

## pyコマンド（Python Launcher for Windows）で仮想環境を構築する
それでは、pythonコマンドではなく pyコマンドで仮想環境を構築してみます。

### 作成手順
myenv という名称で作ってみました。コマンドは、pythonコマンドで作る場合と同じです。

```terminal
py -m venv myenv
```

さらに以下でアクティベートを行います。

```terminal
.\myenv\Scripts\activate
```

以下のとおり、仮想環境を使える状態になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/d0d6b838-23ee-eb75-82b0-b9385311bf40.png)

#### python・pipコマンド
仮想環境では、設定したバージョンの python・pipコマンドが扱えます。

今回は単一バージョンしか入ってない状態で作成したため、以下のようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/9fbdaa64-54d1-0b70-bc5d-a23457d110bd.png)

`pip list` を実行してみると、今のところパッケージは pip のみというのが出ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/47996262-d5f5-509d-aa22-988b9e5a9f3a.png)

昨日書いた記事で扱った MarkItDown を "pip install" でインストールしてみます。
そして再度 `pip list` を実行したところ、依存するパッケージなど含め仮想環境に導入されたことがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/52c99459-1666-9c77-4e56-eeb246e9d2b1.png)

ひとまず、今回のお試しはここまでにしてみます。

## その他
### シェバン
以下のように pyコマンドでは「シェバン」を扱うこともできるようです。

●4. Windows で Python を使う — Python 3.13.1 ドキュメント
 https://docs.python.org/ja/3/using/windows.html#shebang-lines

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/f7f7b6ba-18d0-5bf7-bc79-f66f64c6a7b5.png)

場合によっては、便利に活用できるかと思います。

### 【2024/12/29追記】
今回扱った venv は、activate しなくても利用できるようです（※ 以下の記事によると、公式でも記載されている内容とのこと）。

●Python の venv は activate しなくても使える
 https://zenn.dev/kariya_mitsuru/articles/1c119859604d48