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

标签 python cmd exe py2exe

我使用 py2exe 模块创建了一个 exe 文件。奇怪的是,当我从命令行运行 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')

初始化数据库():

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()

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

非常重要的编辑:

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

另一个奇怪的事情:

我在 log('ok') 之后添加了行:mLib.printToFile('testovaci_txt.txt', 'nieco') 行不通并且它在存储“exe”和其他文件的文件夹中创建文件 testovaci_txt.txt

EDIT2:log 方法在我的外部库中 site-packages 中。为了找出 log('ok') 保存文件的位置,我创建了 'log_2('ok')',它创建了一个文件 logging-testing.txt 和把它放在 log('ok') 之后并启动程序。然后我在 Windows 中搜索这个文件,但找不到。

您知道问题出在哪里吗?

最佳答案

这是设计使然。

如果您双击它运行的 exe,然后它会关闭。 您可以在文件末尾放置一个“raw_input()”(对于 Python2)或“input()”(对于 Python3)(在“log('for url')”之后,但缩进用于“for url”在 [__CATs__,__hyphens__]: ").

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

关于python - .exe 在双击启动后立即关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829438/

相关文章:

java - 从tidesdk程序执行另一个程序的命令

java - launch4j 编译的 java 应用程序可执行文件被防病毒软件阻止

python - 控制数据库查询流程的更好方法

python - 如何使用 python 单击网络浏览器按钮?

python - 如何在 pandas 或 python 中分割特定范围的日期

windows - 如何暂停足够长的时间以使 cmd.exe 退出?

batch-file - 如何将单个 PowerShell 输出字符串放入 cmd 变量中?

c# - 从另一个线程关闭表单

java - 在 Java 程序中调用时如何检索 .exe 文件的输出?

python - 如何中断 Mac 上后台运行的 python 脚本?