PythonとPygameで作る レトロ風RPG 全コード

同人誌について

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

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

(2024-03-28:ver1.0.4 に更新、2024-03-10:ver1.0.3 に更新)


2-6 mypyの導入

公開:2024-02-27

mypyとは

 『mypy』は、『Python』用のオプションの静的型チェッカーです。『mypy』を使えば、プログラムの実行前に型チェックをおこなえるようになります。その結果、バグに繋がる穴を事前に塞げます。

mypy - Optional Static Typing for Python
https://www.mypy-lang.org/

 『Python』自体は、変数や関数に型の情報を書かなくてもよいです。しかし、型ヒントと呼ばれる型の情報を書くことで、想定外の値によるエラーを事前に防げます。

mypyの導入

 『mypy』をグローバル環境に導入する際はpip install mypyコマンドを使います。今回は、仮想環境に導入して使いたいので、CLI環境でプロジェクトのディレクトリに移動して、次のコマンドを実行します。

.venv\Scripts\activate
pip install mypy
deactivate

 インストールは3分程度かかります。「.venv」ディレクトリにファイルが導入されます。ディレクトリのサイズは、85.1MBになりました。前回の51.2MBから33.9MB増えました。

 仮想環境内に正しくインストールできたか確認しましょう。次のコマンドを実行します。

.venv\Scripts\activate
pip list
deactivate

 表示されるパッケージ一覧に「mypy」が含まれていれば正しくインストールできています。

mypyを使う

 次のコマンドで、静的型チェックをおこないます。ディレクトリ内の全ファイルが対象になります。

.venv\Scripts\activate
mypy .
deactivate

 ファイルを1つだけチェックするときはファイル名を指定します。

.venv\Scripts\activate
mypy main.py
deactivate

 「mypy」を実行すると、「.mypy_cache」というディレクトリが作られて、その中にファイルが作られます。このファイルは、数行のプログラムでも数MBのサイズになります。その代わり、次回からの実行が早くなります。ただ、この「.mypy_cache」の恩恵は、よほど大きなプログラムを書かない限り受けられません。

 「.mypy_cache」を作りたくないときは、次のように--cache-dir=nulを付けます(Unix系の場合は--cache-dir=/dev/null)。

.venv\Scripts\activate
mypy --cache-dir=nul .
deactivate
.venv\Scripts\activate
mypy --cache-dir=nul main.py
deactivate

 コマンドラインのオプションは、次のページにまとまっています。

The mypy command line
https://mypy.readthedocs.io/en/stable/command_line.html

カレント ディレクトリ

 「mypy」によるチェックは、カレント ディレクトリと、実行ファイルのルートが一致していないとエラーが出ることが多いです。

 これは、モジュールの依存関係を、カレント ディレクトリをトップ ディレクトリと見なして判定していくためです。「mypy」でチェックするときは、カレント ディレクトリがどこにあるのかを確かめて実行する必要があります。

 たとえば、先ほどのディレクトリ構成で「main.py」を確認するときは、「src/」をカレント ディレクトリにして実行するとよいです。

.venv\Scripts\activate
cd src
mypy --cache-dir=nul .
deactivate
cd ..

同人誌について

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

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

(2024-03-28:ver1.0.4 に更新、2024-03-10:ver1.0.3 に更新)

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


トップページに戻る
Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について