Cx_freeze 不适用于带有 Python 3.6.2 的 Win 10

Posted

技术标签:

【中文标题】Cx_freeze 不适用于带有 Python 3.6.2 的 Win 10【英文标题】:Cx_freeze is not working on Win 10 with Python 3.6.2 【发布时间】:2017-08-13 21:25:40 【问题描述】:

我开始学习一些关于 Python 的知识。我正在尝试将 Python Tkinter 应用程序转换为 exe 文件。当不涉及 Tkinter 时,转换为 exe 可以正常工作。我尝试了 setup.py 和 Tkinter 应用程序的示例文件,您可以在 cx_Freeze [http://cx-freeze.readthedocs.io/en/latest/index.html] 的官方网站上找到它们,但在运行构建命令时仍然在 CMD 中出现很多错误 [如:KeyError: 'TCL_LIBRARY']。官方网站上声明支持 Python 3.6。

这里是 setup.py 的官方示例:

import sys
from cx_Freeze import setup, Executable

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

executables = [
    Executable('app.py', base=base)
]

setup(name='simple_Tkinter',
      version='0.1',
      description='Sample cx_Freeze Tkinter script',
      executables=executables
      )

这里是测试 Tkinter 应用的官方示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

try:
    from tkinter import Tk, Label, Button, BOTTOM
except ImportError:
    from Tkinter import Tk, Label, Button, BOTTOM

root = Tk()
root.title('Button')
Label(text='I am a button').pack(pady=15)
Button(text='Button').pack(side=BOTTOM)
root.mainloop()

【问题讨论】:

【参考方案1】:

您可以尝试使用 Pyinstaller 而不是 cx_freeze,它会完成您尝试完成的完全相同的工作。

从 pip 继续输入 pip install pyinstaller 然后在你的程序目录中运行 pyinstaller yourprogram.py

【讨论】:

我说支持到 Python 3.5 你可以尝试使用开发版,但不稳定。不过试一试也无妨 它正在工作,尽管我在 CMD 中也收到了一些警告。有没有办法只获取一个文件? pyinstaller.py 文件名.py --onefile 还要确保您从 dist 子目录运行 exe

以上是关于Cx_freeze 不适用于带有 Python 3.6.2 的 Win 10的主要内容,如果未能解决你的问题,请参考以下文章

带有 cx_freeze 的 python 3.2 tkinter 图标

使用 cx_Freeze 创建一个带有 Python 3.4 的 exe

在 PyQt5 中使用 cx_freeze,找不到 PyQt5

PDF 输出不适用于 Pyqt5 和 Python 3.5

Python 3.4 多处理不适用于 py2exe

带有fortran扩展的python包的conda-forge配方不适用于appveyor