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