Pyinstaller Tkinter Mac OS TCL

2024-06-25 06:47:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着用Tkinter把一个非常简单的Python代码编译成二进制代码。下面是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通过运行以下命令进行编译:

^{pr2}$

这运行良好,并按预期生成2个文件(Unix的.exe和app版本)。当我点击应用程序文件时,它会在启动时崩溃-我什么也没看到。如果我单击另一个文件(.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]

我能做些什么来解决这个问题?我认为这与在macos版本的Python上安装TCL有关。我在网上看到了不同的解决方案,但不幸的是没有一个有效。任何帮助都将不胜感激。在


Tags: 代码inpytkintervarcountlinecounter