gpt4 book ai didi

使用 cx_Freeze 可执行的 Python 脚本,exe 不执行任何操作

转载 作者:行者123 更新时间:2023-12-04 13:43:39 25 4
gpt4 key购买 nike

我已经决定出于练习目的,我会编写一个密码生成器并使其成为可执行文件。
我的脚本按预期运行,编译也能正常运行,但是当我运行 exe 文件时,没有任何 react 。
我运行的是 Windows 10 系统并使用 Python 3.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)])

这是我的程序:
import random
import string

for i in range(20):
k = random.choice(string.ascii_letters)
j = random.randint(0, 9)
z = random.randint(1, 2)
if z == 1:
x = k
if z == 2:
x = j
print(x, end=" ")

我很感激任何形式的洞察力。

最佳答案

删除两行

if sys.platform == "win32":
base = "Win32GUI"

来自您的安装脚本,它应该可以工作。
base = "Win32GUI"告诉 cx_Freeze不启动控制台窗口,只有在主应用程序启动 GUI 时才应使用(例如,使用 PySide、PyQt、Tk 等)。如果您从已经启动的控制台运行可执行文件,它可能还会将标准输出重定向到远离控制台的地方。在您的情况下,您有一个基于控制台的应用程序,因此您希望启动一个控制台并接收标准输出。此行为在 cx_Freeze 中得到了部分解释。 documentation .

现在,如果您在不使用 cmd 的情况下运行可执行文件(例如,通过在 Windows-Explorer 中双击它),它将启动一个控制台窗口,在那里打印输出,并在执行完成后立即关闭控制台。在您的示例脚本中,您希望有时间在控制台关闭之前读取输出,因此您需要的是告诉您的脚本在完成之前等待,例如直到您按下某个键。你可以加
input("Press Enter to continue...")

为此,请在脚本末尾查看 How do I make python to wait for a pressed key .

关于使用 cx_Freeze 可执行的 Python 脚本,exe 不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com