出于实践考虑,我决定编写一个Passwordgenerator并将其设为可执行文件。
我的脚本正在按预期运行,并且编译也可以正常运行,但是当我运行exe文件时,没有任何反应。
我运行Windows 10系统并使用Python 3.6.x,但我不是python本身的初学者。
我在Internet上浏览了各个页面,但是没有发现任何可以帮助我解决该问题的东西,我的第一个问题是编译没有用,但是我已经找到了解决方案。
编辑:我尝试使用cmd运行exe,但没有任何输出,而是出现了新行。
这是设置代码:
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=" ")
这是我的程序:
SELECT DISTINCT
d.id AS id,
CASE
WHEN (c.a = 'UNK' ? NULL : c.a) IS NOT NULL THEN c.a
WHEN (b.a = 'UNK' ? NULL : b.a) IS NOT NULL THEN b.a
WHEN (c.e = 'UNK' ? NULL : c.e) IS NOT NULL THEN c.e
ELSE b.e
END AS output,
FROM
db.table
...random irrelevant joins..
我很感谢任何见识。
答案 0 :(得分:0)
删除两行
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...")
为此,请在脚本结尾处
答案 1 :(得分:0)
在代码后添加等待,以便它不会立即完成。
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=" ")
import time
time.sleep(5) #<-- Sleep for 5 seconds
您还可以使用我的Python Executable maker。