为了练习,我决定编写一个Passwordgenerator并使其成为可执行文件。
我的脚本按预期运行,编译也正常,但当我运行exe文件时,什么都没有发生。
我运行的是Windows10系统,使用的是Python3.6.x,我对Python本身并不是初学者。在
我在网上查了很多网页,但是我没有找到任何对我有帮助的问题,我的第一个问题是编译不起作用,但我已经找到了解决办法。在
编辑:我试着用cmd运行exe,但是没有输出,而是得到了一个新行。在
这是设置代码:
import sys
from cx_Freeze import setup, Executable
build_exe_options = {"excludes": ["tkinter"]}
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(name="Password",
version="1.0",
description="Generates a password made of 20 characters",
options={"build_exe": build_exe_options},
executables=[Executable("pass.py", base=base)])
这是我的节目:
^{pr2}$我很感激任何一种洞察力。在
拆下两条管路
从你的设置脚本,它应该可以工作。在
base = "Win32GUI"
告诉cx_Freeze
不要启动控制台窗口,并且只有在主应用程序启动GUI(例如使用PySide、PyQt、Tk,…)时才应该使用。如果您从已经启动的控制台运行可执行文件,它大概还会将标准输出从控制台重定向出去。在您的例子中,您有一个基于控制台的应用程序,因此您希望启动一个控制台并接收标准输出。此行为在cx_Freeze
documentation中有部分解释。在现在,如果您不使用cmd运行可执行文件(例如在Windows资源管理器中双击它),它会启动一个控制台窗口,在那里打印输出,并在执行完成后立即关闭控制台。在示例脚本中,您希望在控制台关闭之前有时间读取输出,因此您需要的是告诉脚本在完成之前等待,例如直到您按下某个键。你可以添加
^{pr2}$在脚本的末尾,请参见How do I make python to wait for a pressed key。在
在代码后面添加wait,这样就不会立即完成。在
你也可以用我的Python Executable maker。
相关问题 更多 >
编程相关推荐