在没有打包成EXE文件之前,在pycharm中是可以正常输出生成hex文件的,但是用pyinstaller打包之后,再点击运行exe文件,却无法生成hex文件
解决方案:
其实本质上有生成输出文件的,但是不是在exe文件当前所在的文件夹内。
path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'log', self.loggerName)
问题在这一句代码。
os.path.dirname(__file__)返回的是当前脚本的所在路径,使用pycharm和直接点击运行py文件,这个路径均为脚本的所在路径,而生成exe之后点击运行,这个路径变为exe释放路径C:Users...AppDataLocalTemp_MEI*,所以hex文件生成在这个路径下,在结束运行后,这个路径文件夹会被删除。
最后头部导入sys库
import sys
原先使用os.path路径的代码修改如下
def __init__(self):
super(hexMergeClass, self).__init__()
if getattr(sys, 'frozen', False):
pathname = sys._MEIPASS
else:
pathname = os.path.split(os.path.realpath(__file__))[0]
self.cur_path = os.path.abspath(os.path.dirname(__file__)) + '\\' # 当前脚本路径