2012-10-09 40 views
8

我最近创建了使用cx_freeze创建python 3.2.2 exe文件。当我试图运行exe文件时,什么都没有发生。使用cx_freeze创建python 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
library.zip
python32.dll
将Test.exe
unicodedata.pyd

+0

我想单击该.exe一定是打开了一些命令提示符? –

+0

如果您是通过Windows电脑完成此操作,那么[p2exe](http://py2exe.org/)要简单得多 – inspectorG4dget

+0

它没有打开命令提示符。 –

回答

3

放置一个input()在你的代码的底部,然后再试一次:

看起来你.exe运行,并存在之前,你可以看到任何东西,所以放置一个input()在底部使脚本在退出之前等待用户输入。

print("hello world") 

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

我把input()放在我的代码底部并运行它,但是弹出一个错误提示: 无法导入追溯模块。 例外:没有模块名为re 原始异常:输入():丢失sys.stdin –

+0

@SnakeP请参阅http://stackoverflow.com/questions/5603287/exe-error-with-cx-freeze –

+0

@AshiwiniChuadhary我做了什么该链接表示要做,但之后由于输入而抛出错误。然后我删除了输入行,它回到无所事事或命令提示符消失得太快而无法看到它。 –

17

我的建议:

  1. 设置base = None(试试:也许这就是你想要的base = Win32GUI做 “隐藏” 控制台 - 当你正在构建一个GUI这是有用的?)

  2. 与您的.exe的文件夹制作一个批处理文件(文本文件,.BAT)调用您的.exe:

这个进入您的批处理文件:

name-of-your-app.exe %1 

PAUSE 

您可以通过点击该批处理文件启动您的应用程序 - 它使控制台打开,以便你能够芦苇错误/输出。

+0

我有同样的问题,一旦我设定'基地= None' .exe文件开始在控制台上打印。 –

相关问题