pyinstaller 打包应用

最近有个脚本,为避免多次重跑,然后就准备制作成一个exe,方便其他人员执行

制作步骤:

1、安装pyinstaller,用最简单的pip 即可

pip install pyinstaller

2、执行文件,如果需要输入参数的话,就用python 的input函数,到时候运行时会自动弹出弹窗

#假如这个文件为test.py
import numpy as np
import cv2
from  pandas import DataFrame #最好指定包名,如果pandas全部引入,脱离环境打包将会非常大
def main():
    print('程序开始执行')
    #这个input到时候就会有cmd,输入参数用,这里提示最好用英文吧,中文我这报错
    text = input('what is your name?') 
    print(text )
# 增加调用main()函数
if __name__ == '__main__':
    main()

3、然后开始对这个py文件进行打包

pyinstaller -F test.py  #加-F是打离线包,就是拷贝到别人没有python环境的地方,也能用

4、遇到打包报错:RecursionError: maximum recursion depth exceeded,参考

参考这篇文章,是执行完上面这一步,会生成一个过度文件
test.spec,打开test.spec,在上面加入下面两句话,入下图所示:

import sys
sys.setrecursionlimit(5000)

在这里插入图片描述

5、encode 报错

pyinstaller UnicodeDecodeError: ‘utf-8’ codec 
can’t decode byte 0xce in position 110: invalid continuation byte

这个有的时候会报decode的报错,根据这个链接的解决方案,是把报错的那个 Lib\site-packages\PyInstaller\compat.py这个文件里面,加个参数

out = out.decode(encoding)
#改为
out = out.decode(encoding, errors='ignore')

在这里插入图片描述

6、ModuleNotFoundError: No module named 'numpy.core._dtype_ctypes’

这个是找不到这个包,解决办法,点名引用他:

import numpy.core._dtype_ctypes

7、生成exe文件

然后再执行下面的

pyinstaller -F test.spec

最后在dist文件夹下面,就会有test.exe,然后就可以直接拷贝运行就好。
就可以了果还遇到其他问题,再继续百度搜索一下。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值