环境:
windows 7 64 python3.6
先导:
早先用Python获取到了微信的好友信息,想把程序打包给朋友用,朋友需要exe的版本,就开始着手打包。
选择打包模块:
1. py2exe
2. pyinstall
3. cx_freeze
使用:
py2exe:
一开始使用了py2exe,模块安装pip install py2exe,安装完成
但是执行过程时候报错了(下的版本低了,不兼容3.6)
报错信息:
Indexerror: tuple index out of range
google了一下,发现不兼容3.6的,放弃了它。
pyinstall:
然后选择了pyinstall,使用pip install pyinstaller安装完成
pyinstaller F:\itchat-friends.py
安装过程出错!
很无奈,这种时候试了一下简单的hellow程序,打包没有问题,又换了cx_freeze尝试
cx_freeze:
安装cx_Freeze-5.1.1,用的tar包:python setup.py install的方式,然后又写了setup.py:
执行 python setup.py itchat-friends.exe
from cx_Freeze import setup, Executable
exe = Executable(script="instagram.py", icon="instagram.ico", base="Win32GUI")
packages = ['idnadata']
buildOptions = dict(excludes = ["tkinter"], includes =["idna.idnadata"], optimize=1)
setup(name='itchat-friends.py',
version = '0.1',
description='test from py file to exe file',
executables = [Executable("itchat-friends.py")]
)
同样的,还是报错了,报idnadata的错,只能去看这个core.py文件了,找到from . import idnadata这条,我把它注释掉了,然后重新打包,exe版本的程序正常启动。