2012-10-09 35 views
2

我有我的内部c 2个Python脚本运行独立的可执行文件的Python脚本:\ Python32 1)Tima_guess.py它是这样的:无法创建和使用cx_freeze

#Author:Roshan Mehta 
#Date :9th October 2012 

import random,time,sys 
ghost =''' 
0000 0 000---- 
00000-----0-0 
----0000---0 
''' 

guess_taken = 0 

print('Hello! What is your name?') 
name = input() 
light_switch = random.randint(1,12) 
print("Well, " + name + ", There are 12 switches and one of them turns on the Light.\nYou just need to guess which one is it in 4 guesses.Purely a luck,but i will help you to choose") 
print("Choose a switch,they are marked with numbers from 1-12.\nEnter the switch no.") 
while guess_taken < 4: 

    try: 
     guess = input() 
     guess = int(guess) 
    except: 
     print("invalid literal,Plese enter an integer next time.") 
     x = input() 
     sys.exit(1) 


    guess_taken = guess_taken + 1 
    guess_remain = 4 - guess_taken 
    time.sleep(1) 

    if guess < light_switch:   
     print("The Light's switch is on right of your current choice.You have {} more chances to turn on the light.".format(guess_remain)) 

    if guess > light_switch: 
     print("The Light's switch is on left of your current choice.You have {} more chances to turn on the light.".format(guess_remain)) 

    if guess == light_switch: 
     print("Good,you are quiet lucky,You have turned on the light in {} chances.".format(guess_taken)) 
     sys.exit(1) 

if guess != light_switch: 
    print("Naah,You don't seems to be lucky enough,The switch was {}.".format(light_switch)) 
    for i in range(3): 
     time.sleep(2) 
     print(ghost) 
    print("The Devil in the room has just killed you....Ha ha ha") 

input() 

2)setup.py这是这样的:

from cx_Freeze import setup, Executable 
setup(
    name = "Console game", 
    version = "0.1", 
    description = "Nothing!", 
    executables = [Executable("Tima_guess.py")]) 

当我运行python setup.py的构建它创建C内在建目录中的可执行文件:\ Python32 \打造但是当我运行Tima_guess.exe它只是显示一个黑色的屏幕瞬间熄灭甚至无法看到它正在投掷的消息。 请帮助我获得我的Tima_guess.py游戏的独立可执行文件。

问候。

由于根据托马斯的建议,当我明确地去并运行在cmd通过Tima_guess.exe我得到以下错误,但仍然无法弄清楚什么是错的。

c:\Python32\build\exe.win32-3.2>Tima_guess.exe 
Traceback (most recent call last): 
    File "c:\Python32\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2 
7, in <module> 
    exec(code, m.__dict__) 
    File "Tima_guess.py", line 4, in <module> 
    File "c:\Python32\lib\random.py", line 39, in <module> 
    from warnings import warn as _warn 
    File "C:\Python\32-bit\3.2\lib\warnings.py", line 6, in <module> 
    File "C:\Python\32-bit\3.2\lib\linecache.py", line 10, in <module> 
    File "C:\Python\32-bit\3.2\lib\tokenize.py", line 28, in <module> 
ImportError: No module named re 

c:\Python32\build\exe.win32-3.2> 
+0

你可以尝试在命令提示符下运行'Tima_guess.exe',这样你就可以看到它产生的错误信息了吗? –

+0

是的,它只是运行和熄灭...不能看到任何东西。如果我只是在IDLE中运行Tima_guess.py,它完美的工作,但我想单独的.exe,我可以分发给我的朋友。 –

+0

如果您在命令提示符下进入文件夹并键入'Tima_guess.exe',您应该可以运行它,以便它不会马上消失,并且您可以看到错误消息。您需要查看错误消息以确定出现了什么问题。 –

回答

1

setup.py

from cx_Freeze import setup, Executable 

build_exe_options = {"includes": ["re"]} 

setup(
     name = "Console game", 
     version = "0.1", 
     description = "Nothing!", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("Tima_guess.py")]) 
+0

伙计们,我已经添加了这行到我的setup.py,但我仍然' m得到相同的错误,如果可能请尝试在您的系统中制作Tima_guess可执行文件并让我知道它是否正常工作? build_exe_options = {“includes”:[“re”]} –

2

建设后,加入re.pyc到library.zip文件。
要得到re.pyc,你需要做的就是成功运行re.py,然后打开__pycache__文件夹,然后你会看到像re.cpython-32.pyc这样的文件,将它重命名为re.pyc和瞧!