我有一个程序,我用py2exe转换为exe。之后,我尝试使用Inno Setup制作安装程序。我包括所有必要的文件,如.dll,.pyd,.gif,.wav,tlc文件夹(tcl8.5,tk8.5)等。但是在安装程序后它给了我这个错误:
C:\Program Files (x86)\test>test.exe
Traceback (most recent call last):
File "test.py", line 9359, in <module>
File "test.py", line 11, in __init__
File "Tkinter.pyc", line 1745, 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:/l
ib/tcl8.5 {C:/Program Files (x86)/library} C:/library C:/tcl8.5.2/library C:/tcl
8.5.2/library
This probably means that Tcl wasn't installed properly.
我该如何解决这个问题?提前谢谢。
答案 0 :(得分:2)
这解决了我遇到的问题。我在名为dest
(v0.6.9 win32)的py2exe输出目录之外创建了我的Inno Setup(v5.5.5)。
Py2exe输出dest
包含一个名为tcl
的目录,其中包含文件和子文件夹。因此,在您的Inno设置脚本中,将以下条目添加到[Files]
部分:
Source: dest\tcl\*; DestDir: "{app}\tcl"; Flags: createallsubdirs recursesubdirs
在我的情况下,currentWorkingdir\
已添加到dest\tcl\*
。这将获取所有内容并将其发送到DestDir: "(app)\tcl\"
,后者将获取文件和文件夹。
标志createallsubdirs
和recursesubdirs
完成所有工作。这是帮助摘录:
<强> createallsubdirs 强>
默认情况下,编译器在递归时会跳过空目录 子目录搜索源文件名/通配符。这面旗帜 导致在安装时创建这些目录(就像if一样) 你为他们创建了[Dirs]条目。)
必须与recursesubdirs结合使用。