脚本中的 Python 错误,但在 jupyter 笔记本中工作:类型错误:'module'对象不可调用



我在运行在变量 h 中创建假期列表的脚本时会遇到以下错误。我首先在jupyter笔记本上运行了脚本,并且没有错误的情况正常,但是当我以脚本运行时,它不起作用。

我查看了几篇解决问题的帖子,但是我指定了我在脚本中导入的内容,因此不确定为什么它仍然不起作用。

错误

Traceback (most recent call last):
  File "\userconfigworkspaceExcelProjectssrcrootnestedscrap.py", line 53, in <module>
h = USBankHolidayCal.holidays(datetime(2016, 1, 1), datetime(2016, 12, 31))
TypeError: 'module' object is not callable  

代码

from pandas.tseries.holiday import Holiday, AbstractHolidayCalendar, nearest_workday, MO, USFederalHolidayCalendar
from pandas.tseries.offsets import DateOffset, CDay
UKdays = []

class UKHoliday(AbstractHolidayCalendar):
rules = [
    Holiday('Boxing Day', month=12, day=26, year=2016,observance=nearest_workday),
    Holiday('Christmas Day', month=12, day=27, year=2016,observance=nearest_workday),
    Holiday('New Years Day', month=1, day=2, observance=nearest_workday),
    Holiday('Good Friday', month=4, day=14, observance=nearest_workday),
    Holiday('Easter Monday', month=4, day=17, observance=nearest_workday),
    Holiday('Early May', month=5, day=1, observance=nearest_workday),
    Holiday('Spring Bank', month=5, day=29, observance=nearest_workday),
    Holiday('Summer Bank', month=8, day=28, observance=nearest_workday),
    Holiday('Christmas Day', month=12, day=25, observance=nearest_workday),
    Holiday('Boxing Day', month=12, day=26, observance=nearest_workday),
]
UKBankHolidayCal = UKHoliday()
h = UKBankHolidayCal.holidays(datetime(2016, 1, 1), datetime(2016, 12, 31))
for x in h:
    UKdays.append(x.date())

任何帮助都非常感谢!

如果您这样做:

import datetime
datetime(2016, 1, 1)

你得到

TypeError: 'module' object is not callable

,但是如果您这样做

from datetime import datetime
datetime(2016, 1, 1)

它有效。

因此,问题以您导入datetime的方式存在。您必须在情况下使用第二版,或者将模块与对象混合在一起,该模块共享同名。

相关内容

最新更新