この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。
同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで290ページの本になります。ぜひ、こちらもご購入ください。
(2024-03-28:ver1.0.4 に更新、2024-03-10:ver1.0.3 に更新)
『mypy』は、『Python』用のオプションの静的型チェッカーです。『mypy』を使えば、プログラムの実行前に型チェックをおこなえるようになります。その結果、バグに繋がる穴を事前に塞げます。
mypy - Optional Static Typing for Python
https://www.mypy-lang.org/
『Python』自体は、変数や関数に型の情報を書かなくてもよいです。しかし、型ヒントと呼ばれる型の情報を書くことで、想定外の値によるエラーを事前に防げます。
『mypy』をグローバル環境に導入する際はpip install mypy
コマンドを使います。今回は、仮想環境に導入して使いたいので、CLI環境でプロジェクトのディレクトリに移動して、次のコマンドを実行します。
.venv\Scripts\activatepip install mypydeactivate
インストールは3分程度かかります。「.venv」ディレクトリにファイルが導入されます。ディレクトリのサイズは、85.1MBになりました。前回の51.2MBから33.9MB増えました。
仮想環境内に正しくインストールできたか確認しましょう。次のコマンドを実行します。
.venv\Scripts\activatepip listdeactivate
表示されるパッケージ一覧に「mypy」が含まれていれば正しくインストールできています。
次のコマンドで、静的型チェックをおこないます。ディレクトリ内の全ファイルが対象になります。
.venv\Scripts\activatemypy .deactivate
ファイルを1つだけチェックするときはファイル名を指定します。
.venv\Scripts\activatemypy main.pydeactivate
「mypy」を実行すると、「.mypy_cache」というディレクトリが作られて、その中にファイルが作られます。このファイルは、数行のプログラムでも数MBのサイズになります。その代わり、次回からの実行が早くなります。ただ、この「.mypy_cache」の恩恵は、よほど大きなプログラムを書かない限り受けられません。
「.mypy_cache」を作りたくないときは、次のように--cache-dir=nul
を付けます(Unix系の場合は--cache-dir=/dev/null
)。
.venv\Scripts\activatemypy --cache-dir=nul .deactivate
.venv\Scripts\activatemypy --cache-dir=nul main.pydeactivate
コマンドラインのオプションは、次のページにまとまっています。
The mypy command line
https://mypy.readthedocs.io/en/stable/command_line.html
「mypy」によるチェックは、カレント ディレクトリと、実行ファイルのルートが一致していないとエラーが出ることが多いです。
これは、モジュールの依存関係を、カレント ディレクトリをトップ ディレクトリと見なして判定していくためです。「mypy」でチェックするときは、カレント ディレクトリがどこにあるのかを確かめて実行する必要があります。
たとえば、先ほどのディレクトリ構成で「main.py」を確認するときは、「src/」をカレント ディレクトリにして実行するとよいです。
.venv\Scripts\activatecd srcmypy --cache-dir=nul .deactivatecd ..
この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。
同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで290ページの本になります。ぜひ、こちらもご購入ください。
(2024-03-28:ver1.0.4 に更新、2024-03-10:ver1.0.3 に更新)