cx Freeze executable no starting import _tkinter # 如果失败,你的 python 可能没有配置为 tk

Posted

技术标签:

【中文标题】cx Freeze executable no starting import _tkinter # 如果失败,你的 python 可能没有配置为 tk【英文标题】:cx Freeze executable no starting import _tkinter # if this fails your python may not be configured for tk 【发布时间】:2017-02-14 14:41:07 【问题描述】:

我是 Python 新手。我正在尝试使用 cx_freeze 创建可执行文件,但创建文件后无法启动 exe。我收到以下错误:

我正在使用 pytone 3.6.0

代码

import sys
import os
os.environ['TCL_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tk8.6"
from cx_Freeze import setup, Executable
# replaces commandline arg 'build'
sys.argv.append("build")  
# change the filename to your program file --->
filename = "SolutionGenerator.py"
base = None
if sys.platform == "win32":
    base = "Win32GUI"
setup(
    name = "Circle",
    version = "1.0",
    description = "cx_Freeze Tkinter script",
    executables = [Executable(filename, base=base)])

setup.py

import sys import os os.environ['TCL_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6" os.environ['TK_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tk8.6" from cx_Freeze import setup, Executable "SolutionGenerator.py" base = None if sys.platform == "win32":
    base = "Win32GUI" setup(
    name = "Circle",
    version = "1.0",
    description = "cx_Freeze Tkinter script",
    executables = [Executable(filename, base=base)])

我尝试了我在互联网上找到的所有内容,但无法让这个 exe 工作。 在 Python 3.6 中是否有其他可能从 py 创建 exe?

【问题讨论】:

你试过这个解决方案吗 - ***.com/a/42357202/7046074. 【参考方案1】:

我遇到了完全相同的问题,并通过在 exe 目录中手动复制以下 dll 来解决它:

%PYTHON%\DLLs\tcl86t.dll %PYTHON%\DLLs\tk86t.dll

【讨论】:

以上是关于cx Freeze executable no starting import _tkinter # 如果失败,你的 python 可能没有配置为 tk的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.7 Cx_Freeze: ImportError: No module named __startup__

Python 2.7 Cx_Freeze: ImportError: No module named __startup__

cx_Freeze 错误:未提供命令

cx_freeze 不导入外部模块

cx freeze : AttributeError: 'list' object has no attribute 'items'

Cx_Freeze - 自动包含模块