PyInstallerを使用してPythonスクリプトをexeファイルに変換する際、カレントディレクトリの管理は重要な課題となります。特に、設定ファイルやログファイルをexeファイルと同じディレクトリに配置したい場合、カレントディレクトリの設定が重要となります。
以下に、カレントディレクトリを適切に設定するためのコードスニペットを示します。
# pathlibを使う場合
import os
import sys
import pathlib
os.chdir(pathlib.Path(sys.argv[0]).resolve().parent)
# osモジュールだけで済ます場合
import os
import sys
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
このコードは、sys.argv[0]
に格納されているexeファイル自身の相対パスを絶対パスに変換し、その親ディレクトリ(exeファイルが存在するディレクトリ)を新たなカレントディレクトリとして設定します。
この方法を用いることで、PyInstallerで作成したexeファイルのカレントディレクトリを適切に管理することが可能となります。ただし、__file__
変数を使用すると問題が生じる可能性があるため、注意が必要です。具体的には、exe化したPythonプログラムでは__file__
変数を使用しない方が良いとされています。
以上、PythonとPyInstallerを使用したカレントディレクトリの管理についての技術記事でした。この情報がPython開発者の皆様のお役に立てれば幸いです。