我有一个奇怪的问题。我正在使用cx_freeze从python脚本创建可执行文件。我有setup.py
个文件,其中包含以下代码:
from cx_Freeze import setup, Executable;
setup(name='Notebook',
version='1',
description='This is a Notebook.',
executables=[Executable('menu.py')]);
我用以下命令执行此文件:
python setup.py build
我的项目中有几个模块。当我直接运行我的菜单时:
m = Menu()
m.run();
一切正常。但是当我使用这张支票时:
if __name__ == '__main__':
m = Menu()
m.run();
.exe文件只是闪烁。有人可以帮忙吗? 对不起英文。在此先感谢,
答案 0 :(得分:1)
我在Python 2.7中使用cx_Freeze 5.0,我遇到了完全相同的问题。
这似乎是回归,因为我的脚本曾经使用过以前版本的cx_freeze(4.3.4)。
更具体地说,我制作了一个exe(不是GUI:base = None),我随处可见。我写了一个叫做exe的蝙蝠。 除了“主要部分”中的印刷品外,所有印刷品均已印刷。
我还使用cx_Freeze提供的示例SimpleTkApp.py进行了测试。问题是一样的:当代码放在主要部分时,它不再起作用了:exe启动,然后停止,没有做任何事情。
答案 1 :(得分:1)
我最近遇到了同样的问题,但我确实设法搞清楚了!这是因为当您运行exe时,其__name__
不是__main__
,而是name_of_script__main__
。因此,在您的情况下,我非常确定它是menu__main__
。
因此,要弄清楚__name__
实际上是什么,您必须在代码正文的某处print(__name__)
。