为何仅导入Python logging模块却打印两次当前日期?
import logging意外输出两次日期的问题 嘿,这个问题挺奇怪的——我之前在PyCharm的临时scratch文件里也碰到过类似的莫名输出,给你几个具体的排查和解决方向:
先排除PyCharm scratch环境的特殊性
你可以在PyCharm里新建一个普通的Python项目文件(不是scratch目录下的),只写import logging这一行代码运行试试。如果普通文件没有输出,那基本可以确定是PyCharm的scratch环境自带的一些调试钩子或者初始化脚本在搞鬼——毕竟scratch是用来快速测试的环境,PyCharm可能会给它加一些额外的运行配置。检查全局logging配置干扰
虽然当前目录没有logging.py,但系统或者用户级的logging配置文件可能会影响模块初始化。你可以在导入logging前手动重置默认配置来测试:import logging # 强制重置logging的默认配置 logging.root.handlers = [] logging.basicConfig(level=logging.WARNING)运行这段代码,如果日期输出消失了,说明是全局配置导致的默认日志输出被触发了。
排查PyCharm插件的影响
有些第三方PyCharm插件(比如调试增强、日志监控类的)可能会偷偷修改Python运行时的日志行为。你可以临时禁用所有非官方插件,重启PyCharm后再运行scratch文件,看看输出是否消失。如果恢复正常,再逐个启用插件找出问题根源。尝试更换Python版本测试
你用的是Python3.6,这个版本相对比较老了,logging模块在后续版本里有一些初始化逻辑的调整。可以在PyCharm里切换到3.7及以上的Python解释器,运行同样的scratch代码,看是否还会出现这个问题。
如果以上方法都没解决,你可以试试在PyCharm的Run Configuration里给scratch文件添加-S参数(禁用site模块),也就是运行命令改成/usr/bin/python3.6 -S /home/user/.PyCharmCE2019.1/config/scratches/scratch_2.py,看看是否能阻止额外的输出——site模块有时候会加载一些全局的初始化脚本,可能间接触发了日志输出。
内容的提问来源于stack exchange,提问作者l001d

