Pyinstaller + Tkinter + Mac OS + TCL - PullRequest
0 голосов
/ 26 октября 2018

Итак, я пытаюсь запустить компиляцию в двоичный код очень простого кода Python с использованием Tkinter. Вот код для test1.py:

import Tkinter as tk

counter = 0
def counter_label(label):
  counter = 0
  def count():
    global counter
    counter += 1
    label.config(text=str(counter))
    label.after(1000, count)
  count()


root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="dark green")
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy)
button.pack()
root.mainloop()

Затем я использовал pyinstaller для компиляции, выполнив следующее:

pyinstaller --onedir --windowed test1.py

Это работает нормально и генерирует 2 файла, как и ожидалось (Unix-версия .exe и приложения). Когда я нажимаю на файл приложения, он вылетает при запуске - я ничего не вижу. Если я нажимаю на другой стиль файла (.exe) - он открывает новое окно терминала и в итоге я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/0t/1b6bbpcj52xdthkg2d6g2sr40000gn/T/pip-install-MgS374/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "lib-tk/Tkinter.py", line 39, in <module>
  File "/private/var/folders/0t/1b6bbpcj52xdthkg2d6g2sr40000gn/T/pip-install-MgS374/pyinstaller/PyInstaller/loader/pyimod03_importers.py", line 546, in load_module
ImportError: dlopen(/var/folders/0t/1b6bbpcj52xdthkg2d6g2sr40000gn/T/_MEIJX4TS8/_tkinter.so, 2): Library not loaded: @loader_path/Tcl
  Referenced from: /var/folders/0t/1b6bbpcj52xdthkg2d6g2sr40000gn/T/_MEIJX4TS8/_tkinter.so
  Reason: no suitable image found.  Did find:
    /var/folders/0t/1b6bbpcj52xdthkg2d6g2sr40000gn/T/_MEIJX4TS8/Tcl: not a file
    /private/var/folders/0t/1b6bbpcj52xdthkg2d6g2sr40000gn/T/_MEIJX4TS8/Tcl: not a file
test1 returned -1
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

Что я могу сделать, чтобы это исправить? Я думаю, что это как-то связано с установкой TCL на Mac OS версии Python. Я видел различные потенциальные решения в Интернете, но, к сожалению, ни одно из них не сработало. Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 27 октября 2018

Похоже, это известная ошибка в pyinstaller.

https://github.com/pyinstaller/pyinstaller/issues/1350

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...