Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python tkinter exe在windows环境下使用cx#U Freeze构建;不显示图形用户界面_Python_Windows_Tkinter_Cmd_Cx Freeze - Fatal编程技术网

python tkinter exe在windows环境下使用cx#U Freeze构建;不显示图形用户界面

python tkinter exe在windows环境下使用cx#U Freeze构建;不显示图形用户界面,python,windows,tkinter,cmd,cx-freeze,Python,Windows,Tkinter,Cmd,Cx Freeze,问题解决了。 问题在于我用于剪贴板操作的jaraco模块,我使用了pyperclip 我用tkinter制作了一个python应用程序,效果很好,但我想用它制作一个exe,这样在windows中就可以使用户友好了。我使用了cx_Freeze库来实现这一点,它也可以很好地工作,但并不总是这样 当使用cx_Freeze创建exe时,如果没有为应用程序打开两个窗口、cmd窗口和GUI窗口,则可以指定基本参数。要摆脱cmd窗口,可以指定“Win32GUI”作为cx\U冻结的基本参数 这忽略了cmd窗口,

问题解决了。 问题在于我用于剪贴板操作的jaraco模块,我使用了pyperclip

我用tkinter制作了一个python应用程序,效果很好,但我想用它制作一个exe,这样在windows中就可以使用户友好了。我使用了cx_Freeze库来实现这一点,它也可以很好地工作,但并不总是这样

当使用cx_Freeze创建exe时,如果没有为应用程序打开两个窗口、cmd窗口和GUI窗口,则可以指定基本参数。要摆脱cmd窗口,可以指定“Win32GUI”作为cx\U冻结的基本参数

这忽略了cmd窗口,只是打开了GUI,它似乎在工作,但并不总是这样。 有时打开exe文件会启动进程,但不会显示GUI。打开cmd并转到exe的目录,然后从那里启动它,实际上会显示GUI并解决问题,直到重新启动电脑(您可以在没有cmd的情况下打开应用程序,直到重新启动为止)

似乎只要cmd窗口在ram中,GUI就会显示,否则它“不知道”并且无法显示GUI

可在此处找到代码:

clip.py 是整个应用程序吗

setup.py 是与cx_Freeze一起用于获取应用程序的exe的文件,您可以在其中指定基本参数等

最有可能出现问题的代码段(
setup.py
):


谢谢

查看代码库中的
README.md
,您使用的是当前版本的
cx\u Freeze
,即5.1.1。在此版本中,包含的模块位于生成目录的子目录
lib
。手动添加的DLL显然也需要移动到那里。看

尝试对
setup.py
脚本进行以下更改:

options={'build_exe': {'includes': ["jaraco", "tkinter"], 'include_files':[
    (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'), os.path.join('lib', 'tk86t.dll')),
    (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'), os.path.join('lib', 'tcl86t.dll')),
    'icon.ico',
    ]}},

请不要链接到其他网站上的代码。相反,创建一个并直接包含在问题中。@BryanOakley我这样做是为了不让问题看起来像整个代码的巨人,github是查看代码的好源代码,我将在这里包含我的setup.py,因为它较小。我们不想要“整个代码”。我们希望为这个问题创建一个小的解决方案。github不是一个很好的问题代码源,因为您链接到的分支可能会随着时间的推移而更新或删除,从而使问题变得无用。是的,但在
build
中,
build
是构建目录。在我看来,它们应该放在
build/lib
中。我不太明白如何将其包含在build/lib中,我尝试了以下方法:(os.path.join('lib',os.path.join(PYTHON_INSTALL_DIR,'DLLs','tk86t.dll'))而不是前面的方法,但它仍然将dll放在了构建中/@嘿,我编辑了我的答案来解释我将如何做。thx,我只是喜欢你的例子,重新启动我的电脑,但它不工作,我可以看到图形用户界面出现了半秒,它消失了,但在进程中运行,我不知道我可以如何进一步帮助你,直到你提供了一个由@BryanOakley建议的,对不起。
options={'build_exe': {'includes': ["jaraco", "tkinter"], 'include_files':[
    (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'), os.path.join('lib', 'tk86t.dll')),
    (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'), os.path.join('lib', 'tcl86t.dll')),
    'icon.ico',
    ]}},