繁体   English   中英

从.py 到.exe

[英]Going from .py to .exe

好的,可以在这个帖子中找到相关信息(这就是他们在这里所说的吗?)。

Python 计算器除以零/求负数。 诠释。 崩溃的程序

对不起,如果我应该把它留在那个线程上,我不熟悉这里的礼仪,也不确定它是否会被看到。

无论如何,我已经对那里给出的代码进行了一些更改。 这是我目前的最终产品。

import math

def convertString(str):
    try:
        returnValue = int(str)
    except ValueError:
        returnValue = float(str)
    return returnValue

def addition(a, B):
    return convertString(a) + convertString(B)

def subtraction(a, B):
    return convertString(a) - convertString(B)

def multiplication(a, B):
    return convertString(a) * convertString(B)

def division(a, B):
    return convertString(a) / convertString(B)

def sqrt(a):
    return math.sqrt(convertString(a))

def expo(a, B):
    x = convertString(a)
    y = convertString(B)
    return math.pow(x, y)

def fact(a):
    return math.factorial(convertString(a))

keepProgramRunning = True

print "Welcome to [Removed]'s 2011 4-H Project! This is a simple calculator coded in  Python, which is a high-level programming language. Java, C, C++, and Perl are  other high-level programming languages that you may have heard of. Press Enter  to get started!"
print ""
raw_input('')

while keepProgramRunning:
    print "Please select what you would like to do:"
    print ""
    print "1) Addition"
    print "2) Subtraction"
    print "3) Multiplication"
    print "4) Division"
    print "5) Square Root"
    print "6) Exponentiation"
    print "7) Factorial"
    print "8) Quit Program"
    print ""
    print "Input the number of the action that you wish to do here, then press Enter:",
    choice = raw_input()    

    if choice == "1":
        print ""
        numberA = raw_input("Enter the first addend: ")
        numberB = raw_input("Enter the second addend: ")
        print ""
        print "The sum of those numbers is", addition(numberA, numberB)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "2":
        print ""
        numberA = raw_input("Enter the first term: ")
        numberB = raw_input("Enter the second term: ")
        print ""
        print "The difference of those numbers is", subtraction(numberA, numberB)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "3":
        print ""
        numberA = raw_input("Enter the first factor: ")
        numberB = raw_input("Enter the second factor: ")
        print ""
        print "The product of those numbers is", multiplication(numberA, numberB)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "4":
        print ""
        numberA = raw_input("Enter the dividend: ")
        numberB = raw_input("Enter the divisor: ")
        while float(numberB) == 0:
            print ""
            print "You cannot divide by zero. Please choose another divisor."
            print ""
            numberB = raw_input("Enter your divisor: ")
        print ""
        print "The quotient of those numbers is", division(numberA, numberB)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "5":
        while True:
            print ""
            numberA = raw_input("Enter the number you wish to find the square root of: ")
            if float(numberA) >= 0:
                break
            print ""
            print "You cannot take the square root of a negative number."
        print ""
        print "The square root of that number is", sqrt(numberA)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "6":
        print ""
        numberA = raw_input("Enter the base: ")
        numberB = raw_input("Enter the exponent: ")
        print ""
        print "The solution to that expression is", expo(numberA, numberB)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "7":
        while True:
            print ""
            numberA = raw_input("Enter the number you wish to find the factorial of: ")
            if float(numberA) >= 0:
                break
            print ""
            print "You can only find the factorial of non-negative integers."
        print ""
        print "The factorial of that number is", fact(numberA)
        print ""
        print "Press the Enter key to continue."
        raw_input('')
    elif choice == "8":
        print ""
        print "Goodbye! Thank you for your time spent both judging my project and those of     everyone else! Have a nice day! :)"
        print ""
        print "Press the Enter key to close."
        raw_input('')
        keepProgramRunning = False
    else:
        print ""
        print "The key you have selected is not assigned to an action. Please choose from the  listed options."
        print ""
        print "Press the Enter key to continue."
        raw_input('')

我已经解决了最后的问题,并且我已经完成了它以确保一切正常并正确显示(它们应该是间隔线,行之间没有分开的单词等)。 现在我(相信我)准备好让它成为一个独立的。 从我所见这是可能的,甚至应该添加任何导入的东西(在这种情况下,数学库(我相信这就是它的名字。)被导入,所以它将被包含在独立版本中,正确?)。 那么,正如我的标题所说,我如何将 go 从 Python 文件转换为可执行文件? 我已经尝试过自己找到答案,但是提供的工具要么过时,要么不起作用(至少我是如何使用它们的。)。

有什么建议吗?

正如您提到的其他问题和过时的工具(我假设您的意思是 py2exe,2008 年的最后更新),请查看PyInstaller及其文档

另一个工具是cx_freeze

Py2exe总是为我工作。 我使用 PIL 从脚本中制作了一个 exe,它可以正常工作。 文档很好,我可以在几分钟内将其打包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM