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化する際の参考になれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です