pyinstaller使用后exe文件无法正常运行的坑【供参考】

刚开始学,本想写一段,遍历某一个盘,整理文件名和路径,保存到一个xlsx文件上。

写出的程序能运行,也能实现,但打包后,遇到了几个问题。

先贴上问题解决以前的码

dir = "e:\\"      # 遍历E盘
m=[]
n=[]
for root, dirs, files in os.walk(dir):
    for file in files:
       h=os.path.join(root)
       m.append(h)
       l=os.path.join(file)
       n.append(l)
bg = op.load_workbook(r"d:\\test.xlsx")          # D盘里预先新建了一个test.xlsx用来存信息
sheet = bg["Sheet1"]
for i in range(len(m)+1):                                    
    sheet.cell(i+1 , 1, m[i - 1])
for j in range(len(n)+1):                    # sheet.cell(1,1,num_list[0])表示将num_list列表的第0个数据1写入到excel表格的第一行第一列
    sheet.cell(j+1 , 2, n[j - 1])
bg.save("d:\\test.xlsx")   
 

坑一:用pyinstaller打包后,报缺少openpyxl模块。这个问题,在查资料后,尝试用“指定路径”方法解决,结果是,不报少模块了。(我天真地以为真的就不少了- -+)

坑二:这个坑是因为第一个坑引起的,不报少模块后,我以为是代码出现问题,反复修改代码,但打包前,总是很顺利,一打包后,双击exe文件,就是没结果,也不报错。后来经过查资料,确认应该还是打包后运行出现了问题,WIN+R-cmd-将exe文件拖入,这样会显示打包后程序具体错在哪里(这一点对当时的我至关重要)。~~~这一番操作后,我发现问题还是出在少openpyxl模块

坑三: 带有openpyxl库时,直接打包,总会失败,原因是支持Pyinstaller的版本,可能和你用来打包的版本是不同的,所以要尝试更新openpyxl版本。(注意下,Openpyxl版本适用的不一定是下面这篇博文里提及的,请灵活调整)

参考的这位作者:pyinstaller打包程序包含openpyxl库问题解决_weixin_30907523的博客-CSDN博客

坑四:更新Openpyxl模块后,我的天,竟然爆出了这个东西AttributeError: 'int' object has no attribute 'upper'。查资料发现,原来是不同版本的Openpyxl,写程序的方式也不一样

参考的这位作者:AttributeError: 'int' object has no attribute 'upper'_weixin_30907523的博客-CSDN博客

再贴上修改后的代码,这一版,打包后可以在自己的电脑上正常使用。(可惜,单位电脑还是32位的,兼容的坑接着填)

import openpyxl
import os
dir = "e:\\" 
m=[]
n=[]
for root, dirs, files in os.walk(dir):
    for file in files:
       h=os.path.join(root)
       m.append(h)
       l=os.path.join(file)
       n.append(l)
bg = openpyxl.load_workbook(r"d:\\test.xlsx")      	# 应先将excel文件放入到工作目录下 
sheet = bg['Sheet1']
for i in range(len(m)+1):	                   		 	# “Sheet1”表示将数据写入到excel文件的sheet1下
	sheet.cell(i+1 , 1).value= m[i - 1]
for j in range(len(n)+1):					# sheet.cell(1,1,num_list[0])表示将num_list列表的第0个数据1写入到excel表格的第一行第一列
    sheet.cell(j+1 , 2).value= n[j - 1]
bg.save("d:\\test.xlsx")  

这个实现的是遍历E盘,将所有的文件名和地址都存到D盘的test.xlsx中。

打包的话,没搞图标那些,直接就是在Py文件所在地址,cmd窗口输入pyinstaller py文件。

PS:过程中升级PIP遇到了点小问题,参考下面这篇解决了,对这些作者表示感谢!

​​​​​​pip install 提示代理连接失败原因及解决办法 - 快乐随行 - 博客园


版权声明:本文为weixin_45991994原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。