EXE файл, созданный при помощи pyinstaller, сразу же закрывается

Код работает в PyCharm, но exe файл сразу же закрывается. Приложение должно ожидать и принимать по сети текстовое сообщение и опционально заносить в БД, в текстовый файл или выводить на экран. Добавление input() в конец или даже в начало кода не помогает. Покадрово разобрал видео с открытием-закрытием приложения. Единственный текст, который изредка появляется - 'traceback (most recent call last):' после двоеточия ничего нет.

import socket
import sqlite3
import keyboard
from configparser import ConfigParser

cfg = 'config.ini'
config = ConfigParser()
config.read(cfg)

# ПЕРЕМЕННЫЕ ИЗ ФАЙЛА КОНФИГУРАЦИИ
param = config['output']['parameters']
ip = config['connection']['ip']
port = int(config['connection']['port'])
filePath = config['output']['filePath']
inputSplitSign = config['input']['split']


# ФУНКЦИЯ, РЕАЛИЗУЮЩАЯ ДОБАВЛЕНИЕ ДАННЫХ В ТАБЛИЦУ БД И СОЗДАНИЕ ТАБЛИЦЫ, ЕСЛИ ЕЁ НЕТ
def db_insert(self):
    self = self.split(inputSplitSign)
    connection = sqlite3.connect('myDB.db')
    cursor = connection.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS Data
                  (Task TEXT, Year INT)''')

    cursor.execute("""INSERT INTO Data
                          (Task, Year)
                          VALUES (?, ?);""", (self[0], self[1]))

    connection.commit()
    connection.close()


sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((ip, port))


def write_in_file(self):
    file = open(filePath, 'a', encoding='utf-8')
    file.write(self + '\n')
    file.close()


while True:
    try:
        result = sock.recv(1024)
        data = result.decode('utf-8')
    except KeyboardInterrupt:
        sock.close()
        break
    if 'file' in param and 'screen' in param and 'DB' in param:
        write_in_file(data)
        print(data)
        db_insert(data)
    elif 'file' in param and 'screen' in param:
        write_in_file(data)
        print(data)
    elif 'file' in param and 'DB' in param:
        write_in_file(data)
        db_insert(data)
    elif 'screen' in param and 'DB' in param:
        print(data)
        db_insert(data)
    elif 'file' in param:
        write_in_file(data)
    elif 'screen' in param:
        print(data)
    elif 'DB' in param:
        db_insert(data)

config.ini:

[output]
parameters = screen, DB, file
filePath = E:\ttttt.txt

[connection]
ip = 127.0.0.1
port = 8888

[input]
split = ,

Ответы (1 шт):

Автор решения: V1st

Проблема решена. Дело было, как я понял, действительно в import keyboard. Но без флага -F ехе файл всё-равно закрывался.

→ Ссылка