问题描述:
- 打包前,直接本地执行python脚本,可以正常执行
- 使用python py2exe打包成exe,再执行,生成报错log,如下
- 报错的“via”是我打上个exe的python脚本中定义的变量,不是当前打包的python脚本中定义的(我一天打了两个工具包,第一个打包正常,第二个就报错,报的还是第一个脚本里的变量,此处很诡异,百思不得其解)
- 尝试重启电脑,依然无法解决
- 网上查这个报错,说可能是ConfigParser要解析的ini文件读不到
解决办法:
1.原先脚本中把自定义的配置文件Config.ini路径写成相对路径,代码如下:
#设置配置文件路径,读取配置文件
Configfile=“Config.ini”
config = ConfigParser.ConfigParser()
config.readfp(codecs.open(Configfile, “r”, “utf-8-sig”))#配置文件中包含中文
2.把相对路径改成绝对路径:
#设置配置文件路径,读取配置文件
file_path1= os.getcwd()
file_path=file_path1+"\Config.ini"
#Configfile=“Config.ini”
config = ConfigParser.ConfigParser()
config.readfp(codecs.open(file_path, “r”, “utf-8-sig”))#配置文件中包含中文
3.重新打包,执行正常
注:
虽然解决了问题,但是对于问题产生的原理不甚了解
比如:
1.为什么我打包很多次了,以前都没出现识别不到相对路径的情况?
2.为什么打第一个包能识别到ini文件(当时用的相对路径),打第二个包就不行了?