🗂
[Python][Windows]Pyinstallerでexe化するのを想定したお約束コード
import os
import sys
if getattr(sys, 'frozen', False):
# pyintall生成exeで起動時
exe_dir = os.path.dirname(os.path.abspath(__file__))
else:
# 通常のpythonスクリプト実行時
exe_dir = os.path.dirname(os.path.abspath(__file__))
Abstract
- Pythonコードはexe化できるんだけど、その時のお約束コードの説明
概要
Pythonコードをexe化してねって依頼を受けたことがありますよね? その時の事なんですが、Windowsのユーザーフォルダ(C:\Users\xxx)がカレントフォルダになってて、すごい困ることになります。
なので、上述のコードをお約束で埋め込んでおきましょう。
使い方
下記コードを埋め込むだけ。簡単ですね。
import os
import sys
from datetime import datetime
if __name__ == "__main__":
print(f"{datetime.now()}")
# カレント位置初期化設定
if getattr(sys, 'frozen', False):
# pyintall生成exeで起動時
exe_dir = os.path.dirname(os.path.abspath(__file__))
else:
# 通常のpythonスクリプト実行時
exe_dir = os.path.dirname(os.path.abspath(__file__))
# カレントディレクトリを初期設定
os.chdir(exe_dir)
print(os.getcwd())
まとめ
簡単でしたね。これで無用に悩むことがなくなります。
お役に立ちますように。。。
Discussion