【问题标题】:After creating python exe file with cx_freeze the file doesn't do anything使用 cx_freeze 创建 python exe 文件后,该文件不执行任何操作
【发布时间】:2012-09-29 06:58:24
【问题描述】:

我最近使用 cx_freeze 创建了一个 python 3.2.2 exe 文件。当我尝试运行 exe 文件时,什么也没发生。

这是我的 test.py 文件的代码:

print("hello world")

for i in range(5):
    print(i)

这是我的 testSetup.py 文件的代码:

from cx_Freeze import setup, Executable

exe = Executable(
   script="test.py",
   base="Win32GUI",
   targetName="Test.exe"
   )


setup(
    name = "Test",
    version = "0.1",
    description = "I wish programming was this easy",
    executables = [exe])

cx_freeze 创建的构建目录有一个名为 exe.win32-3.2 的文件夹,其中包含以下文件:

bz2.pyd
库.zip
python32.dll
测试.exe
unicodedata.pyd

【问题讨论】:

  • 我猜点击那个 .exe 肯定打开了一些命令提示符?
  • 如果您是在 Windows 计算机上执行此操作,那么 p2exe 会容易得多
  • 它没有打开命令提示符。
  • p2exe 不适用于 python 3.2.2
  • 你有什么版本的cx_Freeze?如果低于 4.3,请先更新它。

标签: python exe cx-freeze


【解决方案1】:

在代码底部放置input(),然后重试:

看起来您的.exe 在您看到任何内容之前已经运行并存在,因此在底部放置一个input() 以使脚本在退出之前等待用户输入。

print("hello world")

for i in range(5):
    print(i)
input()

【讨论】:

  • 我将 input() 放在代码底部并运行它,但随后弹出错误消息:无法导入回溯模块。异常:没有名为 re 的模块 原始异常:input(): lost sys.stdin
  • @AshiwiniChuadhary 我按照链接所说的做了,但随后由于输入而引发错误。然后我删除了输入行,它又什么也不做,或者命令提示符消失得太快而看不到它。
  • @SnakeP 这很奇怪,尝试通过 cmd 本身运行 .exe 尝试删除 input()
  • @AshiwiniChuadhary 我在 cmd 本身中尝试了它,使用 input() 它仍然抛出一个错误,没有它,它没有打印任何东西。
  • @AshiwiniChuadhary 它抛出的错误说: Traceback(最近一次调用最后一次):文件“C:\Python32\lib\site-packages\cx_Freeze\initscripts\Console3.py”,line27,inexec(code,m._dict_)File"test.py",line 7, inRuntimeError:input():lost sys.stdin
【解决方案2】:

我的建议:

  1. 设置base = None(试试看:也许这就是你想要的?base = Win32GUI 确实“隐藏”了控制台 - 这在你构建 GUI 时很有用)

  2. 在与您的 .exe 相同的文件夹中创建一个批处理文件(带有 .bat 的文本文件)调用您的 .exe:

这会进入你的批处理文件:

name-of-your-app.exe %1

PAUSE

您将通过单击批处理文件来启动您的应用程序 - 它使控制台保持打开状态,因此您可以重新读取错误/输出。

【讨论】:

  • 我遇到了同样的问题,一旦我设置了base = None,.exe 就开始在控制台上打印了。
  • 收到此错误:cx_Freeze.freezer.ConfigError: no base named None
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 2022-11-27
  • 2019-01-27
  • 2023-03-06
相关资源
最近更新 更多