質問の内容
はじめまして。
複数ファイルからなるPythonプログラムをPyinstallerで1つの実行ファイルにしました。
端末から実行すると、正しく動作はするのですが、なぜかプログラムの終了時にもう一度実行されてしまいます。
Pyinstallerのドキュメントなど一通り検索したつもりではありますが、原因がわからないため質問させていただきます。
発生している問題・エラーメッセージ
こちらはPythonプログラムとして実行した場合の出力です。正しく動作が終了します。
こちらがPyinstallerによって生成された単一のファイルを実行した場合の出力です。
処理の終了後に、-sオプション付きで再度コマンドが実行されてしまっています。
該当のソースコード
オプションはargparseで解析しています。
Python
1#main.py 2from hoge import piyo 3import argparse, sys 4 5parser = argparse.ArgumentParser(description='Commandline tool') 6 7parser.add_argument('url', help = 'URL of the contents') 8parser.add_argument('-s', '--start', type = int, default = 1, help = 'Specify the first page number to start downloading.') 9parser.add_argument('-e', '--end', type = int, help='Specify the last page number to finish downloading.') 10parser.add_argument('-o', '--output', help='Output directory') 11parser.add_argument('-n', '--name', help= 'Directory name') 12 13args = parser.parse_args() 14#メイン処理 15piyo.async_download(args.output, args.name, args.start, args.end) 16sys.exit()
Bash
1$pyinstaller main.py --onefile --clean
補足情報(FW/ツールのバージョンなど)
OS:macOS
Python 3.9.4
pyinstaller 4.7
あなたの回答
tips
プレビュー