python整个项目打包成一个exe程序

python整个项目打包成一个exe程序

#已安装python环境

一、安装PyInstaller 模块

pip install pyinstaller

运行上面命令,应该看到如下输出结果:

Successfully installed pyinstaller-x.x.x

其中的 x.x.x 代表 PyInstaller 的版本

pyinstaller打包程序exe踩过的坑
1.提示:TypeError: an integer is required (got type bytes) 解决方法如下:
在这里插入图片描述

 pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

2.然后会出现另外一个异常 AttributeError: module ‘enum’ has no attribute ‘IntFlag’? 解决办法如下:
在这里插入图片描述
这可能是由包Enum34引起的。因为Python3.4有一个标准库枚举模块,所以您应该卸载Enum34,因为在Python3.6中添加了Enum.Intflag,所以它不再与标准库中的枚举兼容。
#卸载enum34

pip uninstall enum34 

备注:用不了pip的网友,可直接删掉\Lib\site-packages\enum打头的两个文件夹即可!

二、打包python项目

如项目在对应的目录

在这里插入图片描述
1.在cmd中进入对应的项目目录路径

在这里插入图片描述
2. 修改.PY文件(因为打包成exe文件后,会发送给其他同事使用,路径发生变化)
需要在读取资源文件的地方调整我们的代码,加入下面的代码:

#coding:utf-8
import sys
import os

#生成资源文件目录访问路径
def resource_path(relative_path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

filepath = resource_path(os.path.join("PATH"))#读取资源文件夹PATH路径

在这里插入图片描述
3. 生成.SPEC文件并修改
修改完.py文件后可以先运行一下,保证无误。然后通过cmd指令:

pyi-makespec -F beloved.py

生成.spec文件。如果要添加Icon等可以在这里就使用pyi-makespec --icon abc.jpg -F test.py语句生成spec文件。
接下来,修改.spec文件:

在这里插入图片描述
修改前datas=[],本文这里把它改成上图所示,意思是

将test.py当前目录下的PATH目录(及其目录中的文件)加入目标exe中,在运行时放在临时文件的根目录下,名称为PATH。

到这一步便可以把资源文件嵌入到.exe文件了。
4. 生成.EXE文件以及其他相关文件
接下来,我们便可以放心的生成.exe文件了。执行cmd指令:

pyinstaller -F test.spec

等待一段时间.exe文件生成在子文件dict中。到此便可以把.exe发给其他电脑端运行了。.exe运行比较慢,建议多等待,只要没出现错误提示就OK。

可能会出现No module named 'pkg_resources.py2_warn’错误提示,详情参见解决方案

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值