一、首先需要安装Pyinstaller--
使用pip来安装模块
(我电脑上装的是python的一个编译环境Anaconda,如果电脑上装的是python自带的IDE的话,就直接进入python的安装路径,比如是:“D:\python27\Scripts\pip.exe”)
我的Anaconda2安装在G盘所以用如下路径--执行语句:pip.exe install PyInstaller
cmd 进入python安装目录(cd “G:\Anaconda2\Anaconda2\Scripts”)
使用pip安装的另一个好处是,pip会自动安装这个第三方包需要的依赖模块(比如,这里帮我们下载了pypiwin32这个依赖)。
二、启动cmd将py文件打包成exe文件
pyinstaller文件夹位于:G:\Anaconda2\Anaconda2\Lib\site-packages
(如果没有安装Anaconda2,只装了python,那么pyinstaller应该位于【你的安装目录\python27\Lib\site-packages】)
(1)在site-packages文件夹下新建文件夹myexe用来存放要做成exe的py文件
(2)命令提示符进入到myexe文件夹;
(3)命令提示符输入:pyinstaller -F 文件名.py;注意空格和大小写;【例如pyinstaller -F mytest.py】
(4)在文件夹内将生成若干文件,其中exe文件在dist文件夹中。
三、遇到的问题及解决办法:
1、使用pyinstaller打包时程序报错ImportError: The ‘packaging’ package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.
解决办法:setuptools包的版本太高,环境里的setuptools版本是20.x.x。果断卸载并安装低版本的setuptools(19.2),如下:
pip uninstall setuptools
pip install setuptools==19.2
2、但是在运行pip uninstall setuptools时 报错,找不到“easy-install.pth”文件,于是采用手工卸载的方式:去Python的第三方模块或包的存放位置进行手工删除文件和文件夹,然后删除easy-install.pth文件中的相应的行。(发现问题在于我安装的是Anaconda2,而不是单纯的python,所以目录跟默认的目录不一样,用uninstall的方法找不到easy-install.pth,因为在Anaconda2里,steuptools的安装信息在单独的一个名称为setuptools.pth的文件里,把steuptools的包和该setuptools.pth都删掉,就可以了)
3、pip install setuptools == 19.2 问题解决
4、其间还遇到过打包时找不到某个包的问题,网上有人说提示缺哪个包就在py文件里import,然后再去python的安装目录下的site-package里找到对应的包复制到pyinstaller文件所在的同一目录下,但是我后来发现如果用pip的方式安装pyinstaller就没有这个问题。
参考:http://jingyan.baidu.com/article/a378c960b47034b3282830bb.html