 
      
      
この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。
同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで290ページの本になります。ぜひ、こちらもご購入ください。
(2024-03-28:ver1.0.4 に更新、2024-03-10:ver1.0.3 に更新)
『Python』で開発をおこなう際は、グローバル環境にさまざまなパッケージを導入していきます。しかし、パッケージをプロジェクト単位で別々に導入したいことも多いです。そうすれば、プロジェクトごとにライブラリのバージョンを固定できます。また、システム全体のことを気にせず、簡単に同じ開発環境を再現できます。
こうしたことを可能にしてくれるのが仮想環境です。仮想環境では、プロジェクトごとに『Python』のバージョンを固定して、パッケージをインストールできます。『Python』で仮想環境を構築してくれるツールはいくつかあります。ここでは『Python』の標準ツールである『venv』を利用します。
venv --- 仮想環境の作成 — Python 3.X ドキュメント
https://docs.python.org/ja/3/library/venv.html
 まず、現在使用している環境で利用可能なパッケージの一覧を表示する方法を紹介します。ここではpipを使い、インストールされているパッケージの一覧を確認します。pipは『Python』のパッケージ管理システムです。listオプションを使うと、パッケージの一覧が表示されます。
pip listPackage Version------- -------pip     23.2.1グローバル環境の場合は、通常の方法でグローバルにインストールしたパッケージの一覧が表示されます。仮想環境の場合は、仮想環境にインストールしたパッケージの一覧が表示されます。現在の状態を確かめたいときに役立ちます。
仮想環境を作るときには、先にOSに『Python』をインストールしておく必要があります。特定のバージョンで仮想環境を作りたいときにも、そのバージョンの『Python』を、あらかじめOSにインストールしておく必要があります。
それでは仮想環境を作りましょう。『venv』モジュールを利用して、仮想環境を作るコマンドを示します。CLI環境でプロジェクトのディレクトリを開き、次のコマンドを実行します。
python -m venv .venv このコマンドの意味は「pythonで、モジュールvenvを使い、.venvディレクトリに仮想環境を作成する」です。「.venv」以外の名前のディレクトリを作ってもよいですが、「.venv」という名前が一般的です。
コマンドを実行すると、カレント ディレクトリに「.venv」ディレクトリが作成され、必要なファイルがコピーされます。このコマンドを実行すると、完了までに10秒~1分半ほど時間がかかります。今回インストールした『Python』のバージョンは 3.12.1 です。実行後に作成された「.venv」ディレクトリは、13.9MBでした。
『Python』のバージョンを指定して仮想環境を作成する方法も示します。
 まず、OSに入っている『Python』のバージョンを調べます。Windwosならpy(py.exe)というコマンドを使います。
次のいずれかのコマンドを実行すれば、OSに入っている『Python』のバージョンが分かります。
py -0 -V:3.12 *        Python 3.12 (64-bit) -V:3.10          Python 3.10 (64-bit)py --list -V:3.12 *        Python 3.12 (64-bit) -V:3.10          Python 3.10 (64-bit) コマンドを実行すると-V:3.XX *のように出力されます。XXのところにはバージョンが入ります。複数あるときは複数表示されます。*印が現在のデフォルトのバージョンです。
次のコマンドで、Pythonのバージョンを指定して仮想環境の作成ができます。
py -3.12 -m venv .venv312 -3.12が指定するバージョンです。.venv312が作成する仮想環境のディレクトリ名です。同じディレクトリ階層に、仮想環境のディレクトリ名を変えて複数作ることもできます。
CLI環境で、作成した仮想環境に入る方法を示します。各プラットフォームでのコマンドです。
| プラットフォーム | シェル | 仮想環境を有効化するためのコマンド | 
|---|---|---|
| Windows | cmd.exe | .venv\Scripts\activate.bat | 
| 〃 | PowerShell | .venv\Scripts\Activate.ps1 | 
| POSIX | bash/zsh | source .venv/bin/activate | 
| 〃 | fish | source .venv/bin/activate.fish | 
| 〃 | csh/tcsh | source .venv/bin/activate.csh | 
| 〃 | PowerShell | .venv/bin/Activate.ps1 | 
Windows環境なら、次のコマンドでいけます。
.venv\Scripts\activatePowerShellで、スクリプトの実行が無効になっているとエラーが出た場合には、許可をおこないます。これは1回だけおこなえばよいです。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force仮想環境に入ると、CLIの行の先頭に「(.venv)」と付きます。この状態になっていると仮想環境に入っています。
仮想環境から出るときは次のコマンドを使います。
deactivate以降の作業は、仮想環境の中でおこないます。
これから仮想環境にパッケージをインストールしていくわけですが、仮想環境の複製の仕方を説明しておきます。
「.venv」ディレクトリをコピーするのではなく、インストールしているパッケージの一覧を出力して、他の環境で必要なファイルをインストールし直します。
まずは複製元からの、パッケージ一覧の出力コマンドです。このコマンドは、仮想環境に入った状態でおこないます。「requirements.txt」に、パッケージ一覧を書き出します。
python -m pip freeze > requirements.txt次は複製先での、パッケージ一覧のインストールです。先に、仮想環境を作っておく必要があります。そして「requirements.txt」をコピーしておきます。この状態で仮想環境に入り、次のコマンドを実行してインストールをおこないます。
python -m pip install -r requirements.txt 仮想環境でpipを利用してパッケージのインストールを実行したときに、pipの更新を促される時があります。仮想環境にインストールされるpipが古いときがあるようです。Webで情報を調べているときにも、同様の情報が報告されていました。
 次のコマンドを実行することでpipを更新できます。このコマンドは、仮想環境に入った状態でおこないます。
python -m pip install --upgrade pip更新には1分半ほどかかりました。実行後の「.venv」ディレクトリは、14.1MBです。0.2MB増えました。
 パッケージのインストールはpip installでおこなえます。このコマンドは、仮想環境に入った状態でおこないます。
pip install <パッケージ名> パッケージをインストールしたあとは、pip listコマンドで、インストールされているパッケージの一覧を確かめるとよいです。
pip listそれでは次からは今回の開発に必要なパッケージを、仮想環境にインストールしていきます。
この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。
同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで290ページの本になります。ぜひ、こちらもご購入ください。
(2024-03-28:ver1.0.4 に更新、2024-03-10:ver1.0.3 に更新)