Почему мой календарь ничего не показывает после преобразования файла py в exe

Я хотел бы спросить, когда я запускаю файл в Pycharm, он может отображать календарь Show Calendar, но когда я конвертирую файл py в формат .exe, он не показывает ошибок, но мой календарь ничего не показывает Как показано здесь. У меня есть pip install tkcalendar, но могу ли я узнать, почему мой календарь не появляется после преобразования в формат .exe. Я использую питон 3.8.2

Below are my code: 

def chooseStartDate():
    def print_sel():
        global startDate
        startDate = cal.selection_get()
        tk.Label(this, text=startDate).grid(row=4, column=2)
        top.destroy()
    top = tk.Toplevel(this)
    now = datetime.datetime.now()
    cal = Calendar(top, font="Arial 14", selectmode='day', year=now.year, month=now.month, day=now.day)
    cal.pack(fill="both", expand=True)
    tk.Button(top, text="ok", command=print_sel).pack()

this = tk.Tk()
tk.Label(this, text="Start Date: ").grid(row=4, column=0)
tk.Button(this, text="Choose Date", command=chooseStartDate).grid(row=4, column=1)
this.mainloop()

Спасибо.


person James Lee    schedule 17.04.2020    source источник
comment
Вы не предоставили никаких подробностей о том, как вы преобразовали в формат .exe - поскольку Python по умолчанию не скомпилирован в двоичный исполняемый файл, вы должны предоставить некоторые сведения о том, какие инструменты вы используете и как вы их использовали, так как это, вероятно, где проблема в том.   -  person Grismar    schedule 20.04.2020
comment
@Grismar Я использую Windows PowerShell для преобразования файла .py в формат .exe. Я установил tkcalendar (pip install tkcalendar), и он показал, что требование выполнено. После этого я конвертирую файл .py в .exe, используя pyinstaller -w [имя файла], и он может быть успешно собран. Но когда я запускаю программы, все отображается нормально, но мой календарь показывает пустое окно.   -  person James Lee    schedule 20.04.2020
comment
Итак, ваша проблема связана с использованием pyinstaller, который не является стандартной частью Python, а является специальным инструментом, используемым для создания исполняемых файлов, включающих как Python, так и ваш скрипт. PyInstaller — это хорошо, но может быть сложно убедиться, что он включает все библиотеки, которые вам нужны в сборке — начните с добавления --hidden-import tkinter, но, вероятно, возникнет больше проблем. Посмотрите документацию pyinstaller, чтобы найти еще несколько советов и идей.   -  person Grismar    schedule 20.04.2020


Ответы (1)


Пожалуйста, используйте --hiddenimport=babel.numbers при создании исполняемого файла.

Это должно решить проблему.

pyinstaller.exe --onefile -w --hiddenimport=babel.numbers your_script_name.py
person Nikhil Guleria    schedule 18.05.2020