Mil*_*ano 6 python cmd exe py2exe
我exe用py2exe模块创建了一个文件.奇怪的是,当我运行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.exe或project\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中搜索此文件,但找不到它.
你知道问题出在哪里吗?
这是设计使然。
如果双击该 exe,它就会运行并关闭。您可以在文件末尾放置“raw_input()”(对于Python2)或“input()”(对于Python3)(在“log('for url')”之后,但缩进用于“for url”在 [__CATs__,__连字符__] 中:“)。
关于日志中的“ok”,log()函数是您创建的吗?如果是这样,您是否在写入文件之前将“\n”附加到日志的每一行?
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |