Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:CX_生成后冻结问题_Python_Python 3.x_Python 2.7_Cx Freeze - Fatal编程技术网

Python:CX_生成后冻结问题

Python:CX_生成后冻结问题,python,python-3.x,python-2.7,cx-freeze,Python,Python 3.x,Python 2.7,Cx Freeze,我创建了一个小转换器,在用CX\U Freeze构建它之后,它显示了这个错误 回溯(最近一次呼叫最后一次): 文件“C:\users\LDC\AppData\Local\Programs\python\python36-32\lib\sitr\e-packages\cx\u freeze\initscripts\u startup\uu.py”,run module.run()中的第14行 文件“C:\users\LDC\AppData\Local\Programs\python\python3

我创建了一个小转换器,在用CX\U Freeze构建它之后,它显示了这个错误

回溯(最近一次呼叫最后一次): 文件“C:\users\LDC\AppData\Local\Programs\python\python36-32\lib\sitr\e-packages\cx\u freeze\initscripts\u startup\uu.py”,run module.run()中的第14行 文件“C:\users\LDC\AppData\Local\Programs\python\python36-32\lib\sitr\e-packages\cx\u freeze\initscripts\console.py”,run exec中的第26行(代码,m.dict) 文件“GUI1.py”,第1行,在 文件 “C:\USERS\LDC\APPDATA\LOCAL\PROGRAMS\PYTHON\PYTHON36-32\LIB\TKINTER\u INIT\uuu.PY”,中的第36行 import_tkinter#如果失败,您的python可能没有配置为Tk ImportError:DLL加载失败:找不到指定的模块

这是我的代码:

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.7 3.尝试使用py2exe和pyinstaller时出现不同的错误 4.还要确保环境中的python路径设置正确


提前感谢您的帮助。

此错误并不像看上去那么严重。您只需要知道Python安装的路径

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

这可以通过使用
include\u 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
    )
“包含文件”:[“/Python36-32/DLLs/tcl86t.dll”、“/Python36-32/DLLs/tk86t.dll”]
现在它将起作用

您的安装脚本如下所示:

  "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
    )
导入cx\u冻结
导入系统
导入操作系统路径
PYTHON\u INSTALL\u DIR=os.path.dirname(os.path.dirname(os
os.environ['TCL\u LIBRARY']=os.path.join(PYTHON\u INSTALL\u DIR,'TCL','tcl8.6')
os.environ['TK_LIBRARY']=os.path.join(PYTHON_INSTALL_DIR,'tcl','tk8.6')
基本=无
如果sys.platform==“win32”:
base=“Win32GUI”
可执行文件=[cx\u Freeze.Executable(“GUI1.py”,base=base,icon=“clienticon.ico”)]
cx\U冻结设置(
name=“GUI1”,
选项={“build_exe”:{“packages”:[“tkinter”],“include_files”:[“clienticon.ico”,“/Python36-32/DLLs/tcl86t.dll”,“/Python36-32/DLLs/tk86t.dll”]},
version=“0.01”,
description=“Ya Rb”,
可执行文件=可执行文件
)

您是否正在运行最新版本的cx\u Freeze?5.1或类似的东西,因为如果不更新它。是的,cx_冻结5.1.1和python 3。6@AhmedEssam我很高兴。很高兴我能帮上忙,我真的很乐意帮忙。如果您有进一步的cx_冻结问题,请不要犹豫,我会看看我能做些什么。