この連載は、同人誌『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\activate
PowerShellで、スクリプトの実行が無効になっているとエラーが出た場合には、許可をおこないます。これは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 に更新)