完整报错
Traceback (most recent call last):
File "logging\__init__.py", line 1113, in emit
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "threading.py", line 995, in _bootstrap
File "threading.py", line 1038, in _bootstrap_inner
File "threading.py", line 975, in run
File "PackEntry.py", line 129, in pack_apk
File "log_utils.py", line 43, in info
File "logging\__init__.py", line 1489, in info
File "logging\__init__.py", line 1634, in _log
File "logging\__init__.py", line 1644, in handle
File "logging\__init__.py", line 1706, in callHandlers
File "logging\__init__.py", line 978, in handle
File "logging\__init__.py", line 1118, in emit
我在pycharm本地运行python程序并不会报错,但是用pyinstaller打包exe文件后就报错了,这个logging模块的报错困扰了我很久,但是一直找不到解决办法,,,
模块代码
这个是我初始化logging模块的代码:
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
current_time = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M')
log_file = os.path.join(getCurrDir()+"/log", '{}.log'.format(current_time))
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
创建了一个名为 "mylogger" 的 Logger 对象,并设置了日志级别为 DEBUG。然后,创建了一个文件处理器 file_handler
,将其级别设置为 DEBUG,并将其添加到 Logger 对象中。您还创建了一个控制台处理器 console_handler
,将其级别设置为 DEBUG,并将其添加到 Logger 对象中。 嗯代码看起来没有问题。
解决思路
无意中找到这个解决方案~ Error Shows to me when i execute my exe of my kivy app
查看下我的pyinstaller版本——5.13.0,好家伙,直接重新安装:
- 卸载当前安装的 PyInstaller:
pip uninstall pyinstaller
- 安装特定版本的 PyInstaller:
pip install pyinstaller==5.6.2
打包-运行-问题解决!