双击后,.exe在启动后立即关闭

Mil*_*ano 6 python cmd exe py2exe

exepy2exe模块创建了一个文件.奇怪的是,当我运行exe命令行时它必须工作,但是当我双击exe它时,它会打开一个控制台(就像它必须这样做)并且控制台立即关闭.

我写了一个logging方法来找出问题所在try-except,并且包含了不捕获任何异常的方法.

这是我的一段代码:

if __name__ == '__main__':
    try:
        mh = moto()
        db = database() # you can find __init__ of database() below
        log('ok') # I CAN'T FIND THIS LINE IN THE LOG FILE SO THE PROBLEM IS PROBABLY INSIDE __INIT__ OD database()
    except Exception as e: 
        log(str(e))
        log(str(traceback.format_exc))

    for url in [__CATs__,__hyphens__]:
        log(' for url')
Run Code Online (Sandbox Code Playgroud)

init database():

class database():

    def __init__(self):
            self.conn = sqlite3.connect('db.db') # Database is created
            self.cursor = self.conn.cursor()
            self.create_table_moto()
            self.drop_and_create_temp_table()
            log('init_end') # I CAN FIND THIS LINE IN LOG FILE SO THE PROBLEM SHOULD BE AFTER database() initialization but i doubt that because of the log right after database()
Run Code Online (Sandbox Code Playgroud)

所以主要奇怪的是__init__database()的方法可能正常工作,因为我可以log('init_end')在我的日志文件中看到最后一行.但是在初始化之后的另一个日志log('ok')是我在日志文件中没有看到的另一个日志,并且没有捕获任何异常.

非常重要的编辑:

使用py2exe创建exe文件时,它会dist在项目存储的文件夹中创建一个文件夹.只有当我在这个父文件夹中时才能使用cmd启动exe文件,所以我必须写dist\moto.exe.moto.exeproject\dist\moto.exe不起作用.编辑:

另一个奇怪的事情:

我添加了一行:mLib.printToFile('testovaci_txt.txt', 'nieco')log('ok')此之后不能正常工作,它会在存储testovaci_txt.txt'exe'和其他文件的文件夹中创建文件.

EDIT2:该log方法在我的外部库中site-packages.要弄清楚log('ok')我在哪里保存了我创建的文件'log_2('ok')',它创建一个文件logging-testing.txt并在之后立即log('ok')启动并启动程序.然后我在Windows中搜索此文件,但找不到它.

你知道问题出在哪里吗?

mat*_*teo 0

这是设计使然。

如果双击该 exe,它就会运行并关闭。您可以在文件末尾放置“raw_input()”(对于Python2)或“input()”(对于Python3)(在“log('for url')”之后,但缩进用于“for url”在 [__CATs__,__连字符__] 中:“)。

关于日志中的“ok”,log()函数是您创建的吗?如果是这样,您是否在写入文件之前将“\n”附加到日志的每一行?