python - Pyinstaller + Tkinter + Mac OS + TCL
问题描述
所以我正在尝试使用 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
通过运行以下命令进行编译:
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]
我能做些什么来解决这个问题?我认为这与 Mac OS 版本的 Python 上的 TCL 安装有关。我在网上看到了不同的潜在解决方案,但不幸的是,它们都没有奏效。任何帮助将非常感激。
解决方案
看起来这是 pyinstaller 中的一个已知错误。
推荐阅读
- python-3.x - Pygsheets 和 AWS Lamba
- python - Django中的外键POST
- javascript - 使用 yarn start 或 npm start 无法在浏览器中打开 React 应用程序
- c++ - 检查哪个对象调用了对方的对象方法
- apache-flink - Kinesis Streams 和 Flink
- python - 如何以所有可能的组合在多个文件之间获取公共行/列 - python/pandas
- java - 数组排序 NullpointerException
- zebra-printers - ZPL 批量打印船标签问题...内存限制?
- windows - 如何使用 PowerShell(UTF-8 文件名)扩展 ZIP 存档
- java - 将 LinkedList 附加到另一个的本机 Java 方法?