因工作需要,用python + Tkinter(Tix)做了一个小工具,为了其他人不用装python就能运行,开始使用py2exe打包,代码如下:
from distutils.core import setup
import py2exe
setup(windows=[{"script": "client.py", "icon_resources": [(1, "client.ico")]}])
exe级其他相关文件生成,但是运行不成功,错误如下:
引用
Traceback (most recent call last):
File "bmsclient.py", line 370, in <module>
File "Tix.pyc", line 210, in __init__
_tkinter.TclError: can't find package Tix
Traceback (most recent call last):
File "bmsclient.py", line 370, in <module>
File "Tix.pyc", line 210, in __init__
_tkinter.TclError: can't find package Tix
这个问题目前还在查找原因,
本来想打包成一个单独的exe,代码:
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
options = {"py2exe":
{"compressed": 1, #压缩
"optimize": 2,
#"ascii": 1,
"includes":includes,
"bundle_files": 1 #所有文件打包成一个exe文件 }
}
}
setup(options=options,
zipfile=None,
windows=[{"script": "client.py", "icon_resources": [(1, "client.ico")]}]
)
但是打包后运行出现了这个错误:
后来搜索了一下,发现还有个
cx_Freeze,试了一下,代码如下:
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(
name = "client",
version = "1.0",
description = "client tools",
executables = [Executable("client.py",base = base,icon = "client.ico")])
运行参数 python setup.py build,和py2exe稍有不同
打包后,运行exe,居然OK了,但我还不能用cx_Freeze打包成单个exe。
看起来打包问题解决了。但是我希望能打包成单个exe来用,这看起来有些难度。