質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

724閲覧

Pyinstallerによって生成した実行ファイルが2回実行される

silyauta

総合スコア12

PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/25 08:48

質問の内容

はじめまして。

複数ファイルからなる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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問