① 利用Pycharm将python程序生成.exe执行文件
文章分两部分:直接操作将python程序变成.exe文件;过程中碰到的问题。
一、如何操作,用Pycharm将Python程序生成.exe执行文件
- 首先编写自己的程序,按照需求进行编写,例如作者编写的程序如图所示,红色框标记为主程序。
在Pycharm中,打开程序,安装Pyinstaller,它是将程序转化为exe文件的工具。
- 安装Pyinstaller有2种方法:
- Pycharm左上角 File 选择Settings
- Python Interpreter - > 点击图中第2步 “+” 号
- 检索pyinstaller ,选中点击安装
- 方法②:打开Pycharm ,点击Terminal终端,然后在编辑栏输入pip install pyinstaller即可安装。
- 生成exe文件:
在Terminal框中编辑 pyinstaller -F -w Select_Data.py
其中Select_Data.py 是作者的主程序名称,你可以根据自己的主程序不同而变成不同名称;-F(注意大写)表示所有库文件打包成一个可执行文件,windows下是exe,Linux下是对应的可执行文件;-w是运行exe文件时禁止弹出黑色控制台窗口。如果你的项目调用了图片等本地资源,请将你的可执行文件放在对应目录才能运行。
执行pyinstaller -F Select_Data.py,不带-w生成Select_Data.exe,作者运行该exe后发现有个大黑框。
运行完成会多出几个文件,用红色框标出,其中需要的exe文件在dist文件夹中,点开dist文件夹,生成的exe就可以双击运行程序。
二、操作过程碰到的问题
- 安装Pyinstaller问题:
问题描述:网络搜索如何将python生成exe文件,搜索的方法清一色均是用cmd命令--->pip3 install pyinstaller,然后我用pip命令安装后总是报如下错误,试了很多种方法均没有解决。也许有些人能直接安装吧。
解决方法:见文章描述,在Pycharm中安装Pyinstaller。
- 执行pyinstaller -F -w Select_Data.py报错: raise AttributeError(AttributeError: Mole 'PyQt5' has no attribute '__version__')。
问题描述:如上图所示,错误提示Mole 'PyQt5' has no attribute '__version__',里面有PyQt5,因为的GUI程序使用tkinker搭建的,因此只有tkinker库,并没有PyQt5库。因此增加PyQt5库,方法是在Pycharm中安装PyQt5。
- 生成的exe文件太大:
问题描述:生成的exe文件300多M,整个.py文件都没有几k,生成的exe大小300M,太不便捷了。
原因分析:在Pycharm中创建的虚拟环境所包含的库太大,一些用不着的库也都包含在里面了。找到对应包的位置,发现足足有1G大小。
解决方法:创建新的虚拟环境,安装自己需要的库,找到包的大小,只有133M。
- 执行pyinstaller -F Select_Data_forALL.py报脚本文件未找到错误:
脚本 'F:process_datapolar_curveSelectData_exeSelect_Data_forALL.py' not found
背景描述:执行pyinstaller -F Select_Data_forALL.py报脚本文件未找到错误,可是明明主程序脚本文件存在。
解决方法:经查找DOS不支持Windows的长文件名, 因此将主程序名称改短些即可。
② 在WINDOWS上将Python文件转为生成可执行程序exe文件
闲话就不多说了,需要 Python 2.5 + Py2exe
Py2exe 下载地址 (http://sourceforge.net/projects/py2exe/files/ ) (直接安装即可)
步骤如下:
1.编译你的Py文件,确保无误,保存到…(例如:C:\old\test.py)
2.编辑一个内容如下的py文件,将其保存为(例如:C:\old\go.py )
from distutils.core import setup
import py2exe
setup(console=['test.py' ])
其中红色部分为第一步保存的文件名
3.运行CMD, 进入文件目录(例如:cd c:\old ),执行以下命令
运行:python go.py py2exe
红色部分为第二步保存的文件名
4.到相应文件夹下找到 .exe 文件( 例如 C:\old\dist 下找 test.exe )
完毕!