gpt4 book ai didi

Python:构建后出现 CX_Freeze 问题

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:13 25 4
gpt4 key购买 nike

我创建了一个小型转换器,在使用 CX_Freeze 构建它后,它显示了此错误

回溯(最近一次调用最后一次):文件“C:\users\LDC\AppData\Local\Programs\python\python36-32\lib\sitr\e-packages\cx_freeze\initscripts_startup_.py”,运行 module.run() 中的第 14 行文件“C:\users\LDC\AppData\Local\Programs\python\python36-32\lib\sitr\e-packages\cx_freeze\initscripts\console.py”,第 26 行运行 exec(code,m.字典)文件“GUI1.py”,第 1 行,位于文件“C:\USERS\LDC\APPDATA\LOCAL\PROGRAMS\PYTHON\PYTHON36-32\LIB\TKINTER_INIT_.PY”,第36行,inimport_tkinter#如果失败,你的 python 可能没有配置为 TkImportError:DLL加载失败:找不到指定的模块

This is a screen shot from the error

现在这是我的代码:

from tkinter import *
window1=Tk()

def convert():
var2=var1.get()
var3=var2*3.785
e2.insert(0,var3)

def clear():
e1.delete(0,END)
e2.delete(0,END)

def quit():
window1.destroy()

var1=IntVar()
label1=Label(window1,text='Gallons',padx=25).grid(row=0,sticky=W)
e1=Entry(window1,width=25,textvariable=var1)
e1.grid(row=0,column=1)
label2=Label(window1,text='Liters',padx=25).grid(row=1,sticky=W)
e2=Entry(window1,width=25)
e2.grid(row=1,column=1)

window1.title("Converter")
window1.geometry("400x200+200+200")
button1= Button(text='convert',command=convert,width=15,).grid(row=4,column=0)
button2= Button(text='clear',command=clear,width=15).grid(row=4,column=1)
button3= Button(text='exit',command=quit,width=15).grid(row=5,column=1)

mymenu=Menu()
mymenu.add_cascade(label='File')
mymenu.add_cascade(label='Edit')
mymenu.add_cascade(label='View')
mymenu.add_cascade(label='Tools')
mymenu.add_cascade(label='Help')
window1.config(menu=mymenu)

window1.mainloop()

这是设置代码

import cx_Freeze
import sys
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')

base = None

if sys.platform == 'win32':
base = "Win32GUI"

executables = [cx_Freeze.Executable("GUI1.py", base=base, icon="clienticon.ico")]

cx_Freeze.setup(
name = "GUI1",
options = {"build_exe": {"packages":["tkinter"], "include_files":["clienticon.ico"]}},
version = "0.01",
description = "Ya Rb",
executables = executables
)

我尝试了以下方法,但没有成功:1.卸载cx freeze并重新安装2.尝试了不同版本的python .. python 2.73.尝试使用py2exe和pyinstaller得到不同的错误4.还要确保环境中的python路径设置正确

预先感谢您的帮助..

最佳答案

这个错误并不像看起来那么严重。您只需要知道 Python 安装路径即可。

错误的含义:您已包含 tkinter 库,但忘记了 tkinter 运行时(tk86t.dll 和 tcl86t.dll)。为了使您的脚本正常工作,您需要包含它们。

这可以通过使用 include_files 语句来完成。快速搜索安装后发现它们位于名为 DLLs 的文件夹中。我们需要为安装脚本提供我们想要的文件路径和文件名。这可以这样完成:

  "include_files":["<path to python>/Python36-32/DLLs/tcl86t.dll","<path to python>/Python36-32/DLLs/tk86t.dll"]

现在就可以工作了。

您的设置脚本将如下所示:

import cx_Freeze
import sys
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')

base = None

if sys.platform == 'win32':
base = "Win32GUI"

executables = [cx_Freeze.Executable("GUI1.py", base=base, icon="clienticon.ico")]

cx_Freeze.setup(
name = "GUI1",
options = {"build_exe": {"packages":["tkinter"], "include_files":["clienticon.ico", "<path to python>/Python36-32/DLLs/tcl86t.dll","<path to python>/Python36-32/DLLs/tk86t.dll"]}},
version = "0.01",
description = "Ya Rb",
executables = executables
)

关于Python:构建后出现 CX_Freeze 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com