更新3:我已经使用了pyinstaller +在一个脚本中发布了我的代码,它运行正常!
更新2:我已将所有脚本放在一个单独的.py文件中,但有2000行,这真的不是我想要的方式。无论如何它似乎引导我一个新的错误/解决方案但我想知道如何使用py2exe生成.exe的答案,如果它是在不同的脚本外包,所以如果你有任何想法......
更新1:我尝试过一个简单的GUI:它可以工作,但我尝试从另一个模块启动简单的GUI,它不起作用所以我认为这里肯定有一些东西。我不知道我是否清楚,但我有一个“简单的GUI”,但我尝试了一个“启动模块”,基本上只是导入“简单的GUI”并运行它,但这不起作用。
从昨天开始,我已经完成了一段我已经工作了两周的代码。当我从python启动它时,它工作正常,并完全符合我的要求。
但是 - 总有一个但是 - 我不希望我的最终用户必须安装python甚至使用Portable Python(我正在使用它,在Windows XP上的2.7.2.1版本)如果它有帮助,则为32位。
我希望程序充其量只是一个独立的exe程序,或者至少是一个包含大量文件和可执行文件的文件夹。
所以我在去这里之前做了一些研究,发现了py2exe。我已经苦苦挣扎了一段时间,但现在我终于成功生成了一个包含大量文件和可执行文件的文件夹。
那么你会说什么问题?好吧,当我运行可执行文件时没有任何反应。这不完全正确,一个提示窗口出现1秒然后关闭,然后没有任何反应,而GUI应显示。
我不知道问题是否来自这里,但我的程序被分成不同的模块,如gui.py,calc.py,blablabla.py等。
我试图谷歌我的问题,但到目前为止没有找到任何值得关注的东西。
这是我的setup.py:
from distutils.core import setup
import py2exe
setup(console=['guiapp.py'])
我在python上启动的模块,它启动了所有guiapp.py:
import MainWindowApp
import CumulativeLogger
import logging
import gettext
_ = gettext.gettext
logging.basicConfig()
l = logging.getLogger()
l.setLevel(logging.INFO)
cl = CumulativeLogger.CumulativeLogger()
l.info(_('Lancement du Programme'))
MainWindowApp.MainWindowApp(cl).run()
最后应该启动GUI的MainWindowApp.py(缩短版):
from Tkinter import *
import tkMessageBox
import tkFileDialog
import logging
import ViewLog
import ThreadsConnector
import ActionWindow
import gettext
import app2
_ = gettext.gettext
import os
class MainWindowApp:
def __init__(self, log):
self.log = log
self.logger = logging.getLogger(self.__class__.__name__)
def run(self):
self.root = root = Tk()
root.title(_('QuickGen'));
#Buttons and things like that
root.mainloop()
def alotoffunctiontomakeitrun
顺便提一下,我应该提一下,我试图通过一个小的GUI来替换我的整个代码,除了那里之外什么都不做,它起作用所以我真的不知道该怎么想......