pyInstaller是一款python打包工具,它可以方便将python的所有依赖打包成一个可执行文件,所以它打包的文件只能在相同系统下运行。
本地使用的是Mac系统,python版本是2.7.12,代码是使用sklearn开发的机器学习相关的内容。在打包的时候仍然是遇到了一些问题,现在记录如下:
1.在打包的过程,出现ImportError:No Module named win32com
解决方法:不用管,在mac系统上,这个忽略就可以了,实测并不影响最后的运行
2.提示No Module named sklearn.neighbors.typedefs:
解决方法:命令行加上
--hidden-import sklearn.neighbors.typedefs
3.提示No Module named message:
解决方法:命令行加上
--hiddenimport email.mime.message
4.提示No Module named image:
解决方法:命令行加上
--hiddenimport email.mime.image
5.提示No Module named multipart:
解决方法:命令行加上
--hiddenimport email.mime.multipart
6.提示No Module named audio:
解决方法:命令行加上
--hiddenimport email.mime.audio
7.提示No Module named text:
解决方法:命令行加上
--hiddenimport email.mime.text
最终的打包命令如下,在dist下面生成一个可执行文件:
pyinstaller -F confirm_controller.py --hidden-import sklearn.neighbors.typedefs --hiddenimport email.mime.message --hiddenimport email.mime.image --hiddenimport email.mime.multipart --hiddenimport email.mime.audio --hiddenimport email.mime.text
pyInstaller的相关学习链接:
http://legendtkl.com/2015/11/06/pyinstaller/
https://pyinstaller.readthedocs.io/en/stable/usage.html
http://blog.youkuaiyun.com/qwemicheal/article/details/52864656
http://www.cnblogs.com/maoguy/p/6953326.html?utm_source=itdadao&utm_medium=referral
https://github.com/pyinstaller/pyinstaller/issues/2481