从.py文件Python 3.6创建.exe文件以创建PDF独立文件
我有一个非常简单的.py程序,它使用tkinter构建的GUI提示用户输入两个数字,然后使用“from reportlab.pdfgen import canvas”将答案打印在PDF中。这是下面的代码从.py文件Python 3.6创建.exe文件以创建PDF独立文件,python,python-3.x,tkinter,cx-freeze,reportlab,Python,Python 3.x,Tkinter,Cx Freeze,Reportlab,我有一个非常简单的.py程序,它使用tkinter构建的GUI提示用户输入两个数字,然后使用“from reportlab.pdfgen import canvas”将答案打印在PDF中。这是下面的代码 from tkinter import * def add_numbers(): num1 = (e1.get()) num2 = (e2.get()) print(float(num1) + float(num2)) master = Tk() # Modify
from tkinter import *
def add_numbers():
num1 = (e1.get())
num2 = (e2.get())
print(float(num1) + float(num2))
master = Tk()
# Modify the window
master.title("Add two numbers")
master.geometry("800x500")
Label(master, text = "Input parameters below:").grid(row=0, column=0, sticky=W)
Label(master, text="a = ").grid(row=2, column=0, sticky=E)
Label(master, text = "mm").grid(row=2, column=2, sticky=W)
Label(master, text="b = ").grid(row=3, column=0, sticky=E)
Label(master, text = "mm").grid(row=3, column=2, sticky=W)
Label(master, text = "Press 'Input' & then 'Calculate'").grid(row=5, column=0)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=2, column=1)
e2.grid(row=3, column=1)
Button(master, text='Input', command=add_numbers).grid(row=7, column=0, sticky=W, pady=4)
Button(master, text='Calculate', command=master.quit).grid(row=8, column=0, sticky=W, pady=4)
mainloop()
c2 = e1.get()
d2 = e2.get()
print(float(c2) * float(d2))
a1 = float(c2) * float(d2)
from reportlab.pdfgen import canvas
c = canvas.Canvas("test1.pdf")
c.drawString(100,750, "a = " + c2)
c.drawString(100,730, "b = " + d2)
c.drawString(100,710, "area = " + str(a1) + "mm2")
c.save()
是否可以创建一个独立的.exe程序,用户可以从tkinter GUI中的输入生成PDF,而不必在系统上安装Python?我当前正在对setup.py文件使用以下代码:
import sys
from cx_Freeze import setup, Executable
import os
os.environ['TCL_LIBRARY'] = "C:\\Users\\bra\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Users\\bra\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6"
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os","reportlab.pdfgen","tkinter"]}
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "my_first_prog.py",
version = "0.1",
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [Executable("my_first_prog.py", base=base)])
当我这样做时,我可以创建一个“build”目录,我可以找到一个“application”类型的文件,它被称为my_first_prog。我假设这是.exe文件?当我点击它时,我在底部看到以下内容:“import _tkinter#如果失败,您的Python可能无法为Tk配置”和“ImportError:DLL加载失败:找不到指定的模块”
这里有什么我错过的简单的东西吗?任何帮助都将不胜感激 可能将
tkinter
放在includes
中,而不是建议的packages
?我假设您已经在整个系统中安装了tkinter,而不仅仅是在您一直工作的某个虚拟环境中?我只是在命令窗口中使用了“pip install…”。这是否意味着它没有安装在整个系统中?如果没有,我需要下载一些东西吗?(为我的无知道歉,我完全是个新手)。可能将tkinter
放在includes
中,而不是建议的packages
中?我假设您已经在整个系统中安装了tkinter,而不仅仅是在您一直工作的某个虚拟环境中?我只是在命令窗口中使用了“pip install…”。这是否意味着它没有安装在整个系统中?如果没有,我需要下载一些东西吗?(为我的无知道歉,我完全是个新手)。