1.问题描述
下面的python执行时:
import chinese_calendar
import datetime
def is_holiday(year, month, day):
return chinese_calendar.is_holiday(year, month, day)
# 判断2023年2月14日是否为节假日
print(is_holiday(2023, 2, 14)) # 输出: False
报错如下:
ModuleNotFoundError: No module named 'chinese_calendar'
2.原因分析
- 你的电脑上没有安装你想导入的模块
#检查是否安装模块
pip show chinesecalendar
#结果如下:
Name: chinesecalendar
Version: 1.9.1
Summary: check if some day is holiday in China
Home-page: https://github.com/LKI/chinese-calendar
Author: Lirian Su
Author-email: liriansu@gmail.com
License: MIT License
Location: /opt/homebrew/lib/python3.11/site-packages
Requires:
Required-by:
- 你对模块的拼写不正确(这仍然与前一点有关,即拼写错误的模块没有安装)…例如,在导入时将 numpy 拼成 numpys
引用的为官网文件
- 你对一个模块使用了不正确的大小写(这仍然与第一点有关)…例如,在导入过程中把 numpy 拼成 NumPy,就会出现找不到模块的错误,因为这两个模块是不一样的
- 安装的python版本过多,模块安装位置不是当前使用的python版本
#查看是否为同一版本
which python
#结果如下
/opt/homebrew/bin/python
#idea中运行的python版本为:
/usr/bin/python3
:::info
经分析后确定为第四条安装的python版本过多,模块安装位置不是当前使用的python版本
:::
3.问题解决
更换idea python版本
#查看python位置
which python
#获取位置后在idea中配置即可
# /opt/homebrew/bin/python
4.测试是否完成
import chinese_calendar
import datetime
def is_holiday(year, month, day):
return chinese_calendar.is_holiday(year, month, day)
# 判断2023年2月14日是否为节假日
print(is_holiday(2023, 2, 14)) # 输出: False