#python #user-interface #tkinter #inno-setup #py2exe
#питон #пользовательский интерфейс #tkinter #inno-настройка #py2exe
Вопрос:
Я только что закончил создание программы на python в версии 2.7 и преобразовал ее в .exe
with py2exe
.
Все работает нормально, когда я запускаю преобразованный исполняемый файл в папке, в которую я его поместил, со всеми содержащимися в нем изображениями. После преобразования программы на Python .exe
я приступил к созданию setup
файла для нее. Я добавил все файлы, связанные с моим проектом, в том числе tkinter
в setup
файл. Я добавил почти все, что позволяло мне запускать исполняемый файл.
Как только я закончил создавать setup
файл, я открыл его. Я просмотрел все , закончил установку в своей системе и создал ярлык на своем Desktop
компьютере. Когда я попытался открыть его, это не сработало. Вместо того чтобы запускать программу, он говорит мне открыть файл журнала в его папке в Program Files. Когда я открываю файл журнала, я заметил ошибку. Как мне это исправить?
Ошибка:
Traceback (most recent call last):
File "gui.py", line 10, in <module>
File "Tkinter.pyc", line 1764, in __init__
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
{C:/Program Files (x86)/lib/tcl8.5} {C:/Program Files (x86)/lib/tcl8.5} C:/lib/tcl8.5 {C:/Program Files (x86)/library} C:/library C:/tcl8.5.15/library C:/tcl8.5.15/library
Вероятно, это означает, что Tcl не был установлен должным образом.
Комментарии:
1. У меня была такая же проблема. В конечном итоге мне пришлось переключиться на PyInstaller
Ответ №1:
Я обнаружил ошибку на сайте virutalenv, в которой предлагалось следующее https://github.com/pypa/virtualenv/issues/93
Я полагаю, что вы сталкиваетесь с той же проблемой, только без virtualenv ниже указаны правильные пути, которые затем могут быть включены в приложение пожалуйста, найдите правильный путь к TCL и TK для вашей версии python
set "TCL_LIBRARY=C:Python27tcltcl8.5"
set "TK_LIBRARY=C:Python27tcltk8.5"
перезапустите cmd или оболочку
Я считаю, что расположение TCL изменилось по сравнению с тем, что указано по умолчанию.