0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PyInstallerで作ったファイルが止まる

Last updated at Posted at 2021-02-04

原因

  1. コンソールが出ている
  2. 黒い部分をクリック(止まる。タイトルの先頭に「選択」が加わる)
  3. キーボード入力(再開)

対策

フールプルーフ設計です。

pyinstallerを利用してexe化する際、オプションに--noconsoleまたは-Wを付けて、コンソールを出さないようにしましょう。

どうしても画面にログ出力が欲しい場合は、PyQt5とかTkinterを利用するとか。

あとは単にログファイル出力って言うてもありますね。

手動で止めるときにタスクマネージャとかを利用しないといけないのが面倒です。もしくは自動終了とか?

実験

以下のコードをコンソールありでexe化していじってみるとわかると思います。

na_beats_u.py
import time

# 数字をひらがなにするための辞書
number_dict = {'0':'','1':'いぃち','2':'にぃ','3':'さぁん','4':'よぉん',
                '5':'ごぉ','6':'ろぉく','7':'なぁな','8':'はぁち','9':'きゅ~'}
digit_dict = {1:'', 2:'じゅ~', 3:'ひゃぁく', 4:'せん', 5:'まぁん', 6:'じゅうまぁん', 7:'ひゃくまぁん'}


def aho(msg: str) -> str:
    '''数字(文字列型)をアホにする'''
    result = ''
    length = len(msg)
    for i in range(length):
        if msg[i] != '1' or i == length-1:
            result += number_dict[msg[i]]
        result += digit_dict[length - i]
    result += ''
    return result
        

if __name__ == '__main__':
    print('「3の倍数と3が付く数字のときだけアホになります!」')

    i = 1
    while True:
        time.sleep(1)
        # 数字に3が入っている、または3の倍数の時にアホになる
        msg = str(i)
        if(i % 3 == 0):
            print(aho(msg))
        elif '3' in msg:
            print(aho(msg))
        else:
            print(msg)
        i += 1
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?