Я не могу сделать то же самое с cx_freeze, и мой код прекрасно работает без .exe. Я попробовал несколько вещей в Интернете, чтобы решить эту проблему, но тщетно.
Но, если вы действительно хотите создать .exe, один из лучших вариантов - это pyinstaller. Я использую это все время.
Для установки:
sudo -H pip3 install pyinstaller
Для использования:
pyinstaller test_file.py
После этого перейдите в каталог dist и введите папку с именем вашего проекта.
Там будет довольно много файлов. Но будет один файл .exe, тот, который вам нужен. Итак, нажмите на него, чтобы запустить.
Если вы хотите ввести адрес файла, не используйте запись, используйте следующее (выглядит хорошо, и ошибок не будет):
from tkinter import filedialog as fd
filename = fd.askopenfilename()
if filename:
print (filename)
Надеюсь, это поможет.