🗂

[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