一、简介
Python 写好的.py程序只能在安装有Python 库的环境下运行,如果将 .py 文件打包成exe 文件,则可以在其它没有Python 环境的机器上直接运行。
将Python 打包成exe 文件,常见的有两种方法:
- 方法一、pyinstaller
- 方法二、py2exe
由于py2exe 存在以下问题:
1、打包好的 exe只能在相同的系统下运行,比如在XP系统用py2exe打包好的exe只能在XP上运行,在win7上会有问题;2、打包的文件也需要打包相同exe下的dll,和一些库的压缩包,不然exe 也无法运行。
所以本文重点介绍第一种方法,以Python3.6 64位下pyinstaller 打包方法为例。
二、Pyinstaller 安装配置
首先需要配置环境,即安装Pyinstaller 和PyWin32。
-
pyinstaller 安装参考pyinstaller 主页:http://www.pyinstaller.org/
-
pywin32的下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/
注意下载对应的版本。
1、安装pyinstaller
Pyinstaller 有两种安装方法:
- 方法一:使用
pip install pyinstaller
命令行安装 - 方法二:下载安装包手动安装
pyinstaller 安装包下载地址:https://github.com/pyinstaller/pyinstaller/
Python 安装第三方package 基本方法可参考下文:https://blog.csdn.net/xyqzki/article/details/38414433
方法一
直接在cmd 命令行键入:
pip install pyinstaller
方法二:
- 打开cmd,切换到pyinstaller 解压包目录,比如我的放在D:\Anaconda目录下。
cd D:\Anaconda\pyinstaller-develop
- 安装pyinstaller:进入目录后,输入以下命令。
python setup.py install
2、安装PyWin32
一般来说,采用命令行pip 安装pyinstaller 时会直接安装PyWin32,若安装过程中报错或运行时出现以下错误,则需要手动安装PyWin32。
ImportError: No module named win32com.client
PyWin32 下载链接:
https://sourceforge.net/projects/pywin32/files/pywin32/Build 221/
注意:必须下载与自己Python 版本相匹配的PyWin32 版本,比如我的安装环境是Win10 64bit + Anaconda3 64bit + Python 3.6,所以应当下载的版本是:64bit/py3.6。
pywin32-221.win-amd64-py3.6.exe
下载之后,直接双击运行,一路Next即可。
安装完成后在cmd 命令行下测试是否安装成功
注意是 import win32com
,不是import pywin32
。
C:\Users\江湖人>python
Python 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pywin32
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pywin32'
>>> import win32com
三、打包exe
1、准备一个测试文件 demo.py 随便放在一个目录, 我的放在D:\PythonProject\test
目录下。
2、cmd 切换到要打包的py文件所属目录,命令行键入:
cd D:\PythonProject\test
3、cmd中执行命令
pyinstaller demo.py
4、步骤2的目录中会多出几个文件夹build、dist,exe程序在dist 文件下,可双击直接运行。
四、总结
1、生成单一的exe 文件
以上方法生成多个文件,exe 文件必须在其它所有文件的支持下才能运行。如果要生成单个集成所有库文件的exe文件,可使用以下方法:
pyinstaller -F -w demo.py
该方法生成单一的exe 文件,且隐藏控制台。
2、隐藏控制台
使用以下方法可隐藏控制台黑框:
pyinstaller -F demo.py --noconsole
隐藏控制台后,双击exe 文件运行时看不到程序页面,可在任务管理器中查看和结束运行。