要在一个没有python环境的电脑上部署python程序,就需要先将py文件编译打包为exe文件,这样就省去了安装编译环境的麻烦,运行上也更为简易
将py文件打包为exe使用的主流工具是pyinstaller
以下是pyinstaller在纯pycharm下打包程序的过程:
一、安装pyinstaller
pyinstaller的安装主要有两种方式:
1.使用命令行
在已经安装了pip的情况下,在命令行输入
pip intsall pyinstaller
2.在pycharm下工具栏点击File -settings,然后进入project interpreter
点击右上角+号,进入搜索界面,搜索pyinstaller
记得在下方框选 Install to user's site packages directory并且记住右边文件夹的位置
点击Install Pcakage即可安装,安装成功后IDE右下方会有提示,同时在package界面也会显示已经安装
二、为pyinstaller配置环境变量
在系统环境变量中添加之前记住的文件夹下Scripts的目录
示例:
C:\Users\DELL\AppData\Roaming\Python\Python36\Scripts
如果没有配置环境变量,在使用中可能会出现
pyintsaller不是内部或外部命令,也不是可运行的程序或批处理文件
三、使用pyinstaller打包exe
在Pycharm IDE下方的Terminal即可快速唤出命令行,效果同cmd是一样的
常用参数:
-F :将一个或多个py文件打包为唯一一个exe,是最常用到的参数
-w :打包生成的exe不含控制台(即运行中跳出的黑框),如果不加-w默认生成携带控制台的程序,同时也可以使用-c来指示exe携带控制台
注:如果你写的程序只有命令行,而没有类似于pyqt5的图形界面,不需要去掉控制台选项
-i:打包生成的exe文件使用用户指定的图标
1.正常打包单个文件:
pyinstaller -F main.py #控制台程序和GUI程序均适用
pyintsaller -F -w main.py #GUI程序适用,用于隐藏控制台
pyinstaller -F -w -i 图标.ico main.py#隐藏控制台,并指定exe的图标
2.打包多个文件需要用到-p参数,表示对其他py文件的引用
主文件要在前面,-p后是主文件引用的其他文件,用-p加文件名往后叠加,以此类推
示例:main.py 调用了1.py和2.py,现要将他们同时打包成一个exe文件,并且去掉控制台,并指定图标
pyinstaller -F -w -i 图标.ico main.py -p 1.py -p 2.py
四、python 32 64位打包程序运行问题
如果系统安装的是64位的python,打包后的程序只能在64位的电脑下运行,在32位的电脑下会报错
如果系统安装的是32位的python,在32位和64位系统下都能运行,不受影响