Python 3.9.5执行datetime.datetime.now()出现属性错误如何解决
问题解答
报错核心原因是本地脚本与Python标准库datetime重名,Python导入模块时会优先检索当前运行目录下的文件,执行import datetime时实际导入的是你自己编写的同名脚本,而非官方标准库,脚本导入自身触发循环引用,模块未完全初始化因此找不到now属性。
是否需要卸载Python 3.9.5重装3.7.9版本?
完全不需要。该问题和Python版本无关,两个版本的datetime模块都包含now方法,你在Thonny中运行正常是因为Thonny的运行目录和脚本存放目录不同,导入时优先检索到了官方标准库,未触发重名冲突。
可用的解决方法
按以下步骤操作即可解决问题:
- 将
E:\whitedark\Python\Xample\路径下的datetime.py文件重命名,不要使用Python标准库已有的模块名作为脚本名,例如可改为get_current_time.py - 删除同目录下
__pycache__文件夹内的datetime相关缓存文件,或直接删除整个__pycache__文件夹 - 重新运行重命名后的脚本即可正常执行
是否Python 3.9.5移除了now属性?
没有移除。datetime.datetime.now()是Python长期保留的标准时间接口,全系列Python3版本均支持该方法,报错完全是本地脚本重名导致的异常。
优质Python学习网站推荐
- Python官方中文文档:内容权威准确,覆盖所有语法规则、标准库说明、开发最佳实践,是最可靠的学习参考资料
- 国内主流编程社区的Python分区:包含大量零基础入门教程、实战项目案例、常见问题排查方案,适合遇到问题时检索参考
- 高校公开的Python公开课配套站点:内容结构系统化,知识点循序渐进,适合零基础用户搭建完整的Python知识体系
内容的提问来源于stack exchange,提问作者user16074414
相关产品推荐
相关产品推荐

