見出し画像

2-3 venvの利用

同人誌について

 この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。

 同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで288ページの本になります。ぜひ、こちらもご購入ください(2024-03-10:ver1.0.3 に更新)。


venvとは

 『Python』で開発をおこなう際は、グローバル環境にさまざまなパッケージを導入していきます。しかし、パッケージをプロジェクト単位で別々に導入したいことも多いです。そうすれば、プロジェクトごとにライブラリのバージョンを固定できます。また、システム全体のことを気にせず、簡単に同じ開発環境を再現できます。

 こうしたことを可能にしてくれるのが仮想環境です。仮想環境では、プロジェクトごとに『Python』のバージョンを固定して、パッケージをインストールできます。『Python』で仮想環境を構築してくれるツールはいくつかあります。ここでは『Python』の標準ツールである『venv』を利用します。

venv --- 仮想環境の作成 — Python 3.X ドキュメント
https://docs.python.org/ja/3/library/venv.html

パッケージの一覧を表示

 まず、現在使用している環境で利用可能なパッケージの一覧を表示する方法を紹介します。ここでは`pip`を使い、インストールされているパッケージの一覧を確認します。`pip`は『Python』のパッケージ管理システムです。`list`オプションを使うと、パッケージの一覧が表示されます。

pip list
Package 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のバージョン指定

 『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環境なら、次のコマンドでいけます。

.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`の更新を促される時があります。仮想環境にインストールされる`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で288ページの本になります。ぜひ、こちらもご購入ください(2024-03-10:ver1.0.3 に更新)。

 このnoteの記事と、Webページに一部抜粋版を掲載しています。

https://crocro.com/write/python_pygame_rpg/

 また、こちらもよろしくお願いします。出版社から今年の2月に出た新刊です。

 技術系同人誌など まとめページ


この記事が気に入ったらサポートをしてみませんか?