py2exe输入无法正常工作

时间:2014-07-29 21:00:21

标签: python input py2exe

我的一点代码(不是全部,但我认为只需要它):

functions = {'1':cels_kelw, '2':cels_farh, '3':cels_kelw, '4':kelw_farh, '5':cels_farh, '6':kelw_farh}
while True:
    operation = raw_input("Choose number:\n")
    if operation == '7':
        print 'PROGRAM ENDED'
        break
    try:
        chosenFunction = functions.get(operation)
        if (operation == '3') or (operation == '5') or (operation == '6'):
            turn = 1
        else:
            turn = 0
        print ("Result of your conversion is {num}".format(num = chosenFunction(get_float(), turn)))
    except NameError:
        print("Function you have chosen doesn't exists or you have put wrong type of data")

现在,当我在python解释器中运行它时它运行良好,当我被要求选择函数并且它存在时 - 没有异常并且它会抛出拾取函数的结果。

当我用py2exe将它转换为.exe时,它要求我在脑海中输入一些函数,但它不起作用。在输入数字(例如1)后,它再次要求我输入数字。

这段代码有什么问题?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我想这些函数是在另一个python模块中定义的。你错过了写setup.py文件的错误。

您必须将所有python模块/包添加到setup.py

修改

只是一种感觉,但是,您能在else之后添加break声明吗?

 if operation == '7':
        print 'PROGRAM ENDED'
        break
 else: # Add this here.
    try:
        chosenFunction = functions.get(operation)
        # ... Etcera ...

也许你的身份有问题,或py2exe在这里做些奇怪的事情。进行此更改并告知我们。