Pythonスクリプトをexe化する際には、スクリプトの実行パスを正確に取得することが重要です。この記事では、Pythonスクリプトをexe化した際の実行パスの取得方法について説明します。
スクリプトの実行パスを取得する方法
通常、Pythonスクリプトでスクリプトの実行パスを取得する場合は、os
モジュールを使って以下のようにします。
import os
base_path = os.path.dirname(__file__)
ここで__file__
は実行されたスクリプトのフルパスを指します。しかし、.py
ではなく.exe
ファイルを実行する場合には、少し違った実行結果となって問題が発生することがあります。
exe化した際に取得されるパス
exeファイルを実行した場合、スクリプトの実体をTemporaryフォルダにコピーした後に、スクリプトを実行するという動きになります。そのため、実行している場所がexeが置いてあるパスと異なるため、もしexeファイルを配置したファイルを相対パスでファイルなどで操作しようとすると、「Not found」でエラーになってしまいます。
対応方法
exeファイルを実行したパスを取りたい場合には、次のように取得を行うことで対処することができます。
import sys
import os
path_current_dir = os.path.dirname(sys.argv[0])
ここでsys.argv[0]
には、実行ファイルまでのフルパスが入っているので__file__
と同じように使うことができます。
以上がPythonスクリプトをexe化した際の実行パスの取得方法についての説明です。この情報がPythonスクリプトをexe化する際の参考になれば幸いです。