在沒有打包成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__)) + '\\' # 當前腳本路徑