如何解决datetime模块报错并高效运行Python生日祝福自动发送代码
错误原因
该报错与生日祝福的业务逻辑无关,是pandas依赖的numpy库加载标准datetime模块失败导致的,常见触发原因有2个:
- 代码首行
datetime导入写法不规范,直接导入了Python内部底层实现的_datetime模块,干扰了标准datetime模块的属性暴露 - 项目运行目录下存在你自行创建的
datetime.py文件/文件夹,Python导入时会优先加载本地同名文件,覆盖系统标准datetime库,导致numpy找不到内置的datetime_CAPI属性
修复方案
- 修正datetime导入写法,将代码第一行的
import _datetime as dt替换为标准写法:import datetime as dt - 检查代码所在目录
C:\Users\faqee\PycharmProjects\100DaysOfCode\Day 32\,如果存在命名为datetime.py的文件或datetime文件夹,将其重命名为非标准库重名的名称,例如custom_datetime.py - 若以上操作后仍报错,重建PyCharm虚拟环境后重新安装依赖:
激活虚拟环境后依次执行以下命令:pip uninstall numpy pandas -ypip install numpy pandas
后续校验
修复导入问题后,确认以下两点即可正常运行:
birthdays.csv和代码在同一目录下,csv的列名Name、Email、Month、Day的大小写与代码中完全一致- 代码同级目录下存在
letter_templates文件夹,内含letter_1.txt、letter_2.txt、letter_3.txt三个模板文件
内容的提问来源于stack exchange,提问作者Sulaimon Okikiola
相关产品推荐
相关产品推荐

