首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行
1. 直接在命令行用pip安装 pyinstaller
pip install pyinstaller
2. 下载安装pyinstaler运行时所需要的windows拓展---pywin32
pywin32:http://sourceforge.net/projects/pywin32/files/pywin32/
点击最新的Build
再点击pywin32-219.win-amd64-py2.7.exe
(这里要根据你的windows x86或者x64和你的python版本来选择)
3.在命令行中切换到要打包的程序所在目录,直接输入下面的指令即可
pyinstaller -F demo.py
参数 | 含义 |
---|---|
-F |
指定打包后只生成一个exe格式的文件 |
-D |
–onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) |
-c |
–console, –nowindowed 使用控制台,无界面(默认) |
-w |
–windowed, –noconsole 使用窗口,无控制台 |
-p |
添加搜索路径,让其找到对应的库。 |
-i |
改变生成程序的icon图标 |
注意事项:
- 生成文件中,可能包含一个以warn开头的类似warndemo.txt的警告文件
这很明显,是因为程序无法自动导入很多的库
使用-p
参数添加搜索路径
pyinstaller.py -F -p C:python27; ..demo.py #注意当前目录是我在下一级目录里
2.添加icon图标
pyinstaller.py -F -p C:python27; -i ..a.ico ..demo.py
后话:
我按照自己写的步骤在自己电脑上试了一下是可以的,但是将exe拷贝到别人电脑上用了一下,发现出了一个这样的错误
F:qq文件a>AutoRecord.exe
Traceback (most recent call last):
File "<string>", line 21, in <module>
File "C:Python27Libsite-packagesPyInstallerloaderpyi_importers.py", line
507, in install
File "C:Python27Libsite-packagesPyInstallerloaderpyi_importers.py", line
156, in __init__
ImportError: Can't load frozen modules.
这个问题是因为他的运行目录里面包含了中文,要处理中文要从github上面安装最新的pyinstaller
git clone https://github.com/dkw72n/pyinstaller.git
python setup.py install
然后重新打包.py文件再次发给对方就可以解决这个问题了