LoginSignup
1
2

More than 3 years have passed since last update.

PyInstallerで作ったexe実行時にexeが置いてあるファイルの場所を取得する

Last updated at Posted at 2020-02-26

我ながらものすごいピンポイントの情報
macのターミナルの話です。windowsでは未検証

結論

sys.args[0]でexeファイルのフルパスが取れたので、それを使いました。

困ったところ

exeファイル実行時、ユーザーのホームディレクトリに解凍し、処理を実行するようです。
exeを実行した場所にexcelファイルを吐き出したかったのですが、exeファイルの実行場所に関わらず、ホームディレクトリにexcelファイルが生成されてしまいます。
exe解凍後のpythonファイルもホームディレクトリに展開されてしまいます。

print(os.path.abspath(__file__)))
# /Users/ユーザー名/do_something.py

print(sys.args)してみる

ターミナルでpythonコマンドなりexecなりするとき、実行ファイルを引数として渡します。
そういやprint(sys.args)でとれんじゃねーの?と思い、試してみたら取れました。

[/Users/ユーザー名/exeファイル置き場/dist/do_something_exe_file]

ファイルの置き場所を実行場所と同一にする。

あとは定番の操作をすればオッケー

file_path = os.path.join(os.path.dirname(sys.argv[0]), file_name)

感想

基礎知識、周辺知識が大事な業界だなーとつくづく思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2