我决定尝试使用gui2exe制作我的可执行文件,但我无法使用PyInstaller,Py2exe或cxFreeze来使用它。它创建一个非启动的可执行文件(我运行它,它开始加载,然后它停止加载,没有任何东西,任务管理器在进程中没有它。)
当gui2exe让我测试已编译的项目时,我点击“是”,我收到以下错误:“此项目从未被编译过,或者它的可执行文件已被删除。”
当我通过批处理文件或cmd编译时,没有类似的事情发生。
请使用gui2exe的任何帮助,指南,手册,文档!
更新: 这是我正在使用的测试代码: 文件Tk_tester.py(即主要文件)
# -*- coding: mbcs -*-
from Tkinter import *
import ttk
from ScrolledWidgets import ScrolledText
root = Tk()
root.title('Gui2exe tester application')
txt = ScrolledText(root)
txt.pack(side='top', fill='both', expand=1)
txt.Text['font'] = ('Tahoma', 10)
b = ttk.Button(root, text='Quit', command=root.quit)
b.pack(side='bottom', anchor='e')
root.mainloop()
和文件ScrolledWidgets.py
# -*- coding: mbcs -*-
from Tkinter import *
import ttk
class ScrolledText(ttk.Frame):
def __init__(self, master, scrolls = 'v'):
ttk.Frame.__init__(self, master)
self['relief'] = 'sunken'
self['borderwidth'] = 1
self.rowconfigure(0, weight = 1)
self.columnconfigure(0, weight = 1)
self.__scroll = scrolls
self.Text = Text(self, relief = 'flat', borderwidth = 0)
self.Text.grid(column = 0, row = 0, sticky = 'news')
if self.__scroll == 'v':
yscroll = ttk.Scrollbar(self, orient = 'vertical')
yscroll.grid(column = 1, row = 0, sticky = 'ns')
self.Text['yscrollcommand'] = yscroll.set
yscroll['command'] = self.Text.yview
elif self.__scroll == 'h':
xscroll = ttk.Scrollbar(self, orient = 'horizontal')
xscroll.grid(column = 0, row = 1, sticky = 'ew')
self.Text['xscrollcommand'] = xscroll.set
xscroll['command'] = self.Text.xview
elif self.__scroll == 'both':
yscroll = ttk.Scrollbar(self, orient = 'vertical')
yscroll.grid(column = 1, row = 0, sticky = 'ns')
self.Text['yscrollcommand'] = yscroll.set
yscroll['command'] = self.Text.yview
xscroll = ttk.Scrollbar(self, orient = 'horizontal')
xscroll.grid(column = 0, row = 1, sticky = 'ew')
self.Text['xscrollcommand'] = xscroll.set
xscroll['command'] = self.Text.xview
编译好了。但是当我运行生成的exe时,我得到一个“ImportError:没有名为carchive的模块”。
我尝试过一个唯一的控制台应用程序 - 运行正常。
答案 0 :(得分:1)
我有同样的问题。一个简单的解决方法是在运行pyinstaller之前手动将carchive路径添加到PYTHONPATH。 carchive.py
应位于pyinstaller文件夹中的某个位置。对我而言,它在svn.pyinstaller.org\PyInstaller\loader
答案 1 :(得分:0)
py2exe很难找到所有依赖模块,但有时会失败,例如prgram动态构建模块路径并使用__import__
加载它。
在这种情况下,您必须修改setup.py
并手动添加缺少的模块。以下代码修复了“没有名为_qt的模块”:
import py2exe
from distutils.core import setup
setup(
windows=[{'script': 'test.py'}],
options={
'py2exe':
{
'includes': ['PyQt4._qt'],
}
}
)