此次博客的目的是记录我怎样用pyinstaller打包我用python开发的工程,在网上搜索了很多资源,基本上都是不全的,所以我在这儿记录一下这个比较完整的过程。
前言:概述一哈,我的开发环境是windows7,然后系统是64位,安装的python和wxpython都是32位的(为什么要安装32位,因为32位的安装包开发的程序到时候既可以在64位操作系统上运行,也能在32位系统上运行,但是如果安装64位的话到时候只能在64位系统上运行)。
安装好python和wxpython后就可以在window上开发界面程序了。
2.1首先需要安装pywin32你可以在命令行敲命令pyinstaller检测是否安装成功,不成功的话运行起来会提示命令不存在不是内部命令这个也是需要跟你安装的wxpython和python的对应起来,要么都是63位的,要么都是32位,切记必须一致,我这次用的是32位的,所以pywin32也需要32位的。(安装pywin32的作用是为后面安装pyinstaller提供依赖包)
打包成功后,在该工程目录下面会多两个文件夹,一个build,一个dist,然后我们的exe文件就在dist目录下面,名字为main.exe
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['C:\\Users\\jelly\\Desktop \\DataClean'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=False )
修改如下,修改的操作就是添加了你的database文件夹和icon文件夹,然后保存
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['C:\\Users\\jelly\\Desktop \\DataClean'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
dict_treeicon = Tree("C:\\Users\\jelly\\Desktop \\DataClean\\icon",prefix="icon")
a.datas += dict_treeicon
dict_treebase = Tree("C:\\Users\\jelly\\Desktop\\ DataClean\\database",prefix="database")
a.datas += dict_treebase
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=False )
然后保存退出再在命令行执行命令:pyinstaller mian.spec