【问题标题】:What is Tcl and why do I need it to build applications using cx freeze and what is LSOpenURLsWithRole()?什么是 Tcl,为什么我需要它来使用 cx freeze 构建应用程序,什么是 LSOpenURLsWithRole()?
【发布时间】:2016-05-11 17:30:10
【问题描述】:

我正在尝试将我的应用程序构建到一个 .app 文件中,但我一直遇到以下错误。

[Errno 2] No such file or directory: '/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl'

所以我下载了 ActiveTcl8.5 并且错误消失了。现在我可以使用以下命令进行构建:

python3 setup_cx_freeze.py bdist_dmg

但我的应用程序运行并立即关闭。我从 cmd 运行它以了解错误是什么,我得到的唯一反馈是 LSOpenURLsWithRole() failed with error -10810。我究竟做错了什么?为什么我需要 Tcl 才能使用 cx freeze 以及为什么我的应用程序不想打开?这是我的设置文件。

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ['tkinter', 'smb.SMBConnection'], "excludes": [], "includes": [], "include_files":['Project_Images', 'Project_Docs'], "bin_path_excludes": []}

setup(
    name = "Test",
    version = "2.51",
    description = "Will this even work?",
    options = {"build_exe": build_exe_options},
    executables = [Executable("AccuAdmin.py")])

【问题讨论】:

  • 嗯,它需要 Tcl/Tk,因为它使用 tkinter python 扩展作为 GUI。 (广告)Tk 是最简单、最快的跨平台 GUI。

标签: macos python-3.x tcl cx-freeze


【解决方案1】:

Tcl 是一种编程语言,与 Python 大致同时发明。 Tkinter 是嵌入式 tcl 解释器之上的一个瘦包装器,带有“tk”小部件扩展。没有 tcl/tk 就不能使用 tkinter。

【讨论】:

  • 所以如果安装了 Python,Tcl 应该已经在我的计算机上,因为 Tkinter 附带 Python 并且 Tkinter 需要 Tcl 才能正确运行?因为我注意到在再次下载 Tcl/tk 框架后,它破坏了我开始使用 py2app 创建的所有应用程序。就像我无法打开它们一样,直到我删除了那些框架,我才能再次打开它们。为什么 cx freeze 会在错误的位置查找?
  • @terratunaz:我不知道。我从未使用过 cx_freeze。您的问题询问 tcl 是什么以及为什么需要它。
猜你喜欢
  • 2010-12-08
  • 2017-01-10
  • 2011-02-21
  • 2018-02-03
  • 1970-01-01
  • 2011-01-15
相关资源
最近更新 更多