You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python创建datetime对象报错:'function' object has no attribute 'utc'

AttributeError: 'function' object has no attribute 'utc' 问题排查与解决

问题场景

尝试用以下代码创建带UTC时区的datetime对象:

from datetime import datetime, timezone, timedelta
print(datetime(year, month, day, tzinfo=timezone.utc))

但触发错误:

AttributeError: 'function' object has no attribute 'utc'

已移除可能冲突的import datetime as dt语句,但代码在隔离shell/Jupyter Notebook中可正常运行,仅在项目代码中报错。项目的完整导入语句如下:

import sqlite3
import numpy as np
import ast
import glob
import os
import risk_report_creation as rrc
import configparser
import pandas as pd
from dateutil.relativedelta import relativedelta
import bbg_api_py as bbg
import warnings
import win32com.client as win32
from tinyflux import TinyFlux, Point, TimeQuery
pd.options.mode.chained_assignment = None
from datetime import datetime, timezone, date, timedelta
import schedule
from pretty_html_table import build_table
import pythoncom
from functools import reduce
from time import sleep
from pytz import timezone
import random
import helper_functions_dashboard
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service

使用Python版本:3.10.2

报错原因

问题出在同名标识符的覆盖:

  1. 先从datetime模块导入了timezone类(该类自带utc属性)
  2. 后续又从pytz模块导入了timezone函数(pytz的timezone是生成时区对象的工具函数,没有utc属性)

后导入的pytz.timezone覆盖了之前的datetime.timezone,导致代码中访问timezone.utc时,实际是在调用这个函数的utc属性,从而触发错误。

解决方法

方法1:重命名pytz的timezone导入

修改pytz的导入语句,给它一个唯一别名,避免覆盖:

from pytz import timezone as pytz_timezone

后续使用pytz时区功能时,用pytz_timezone('时区名称')调用,原timezone.utc即可正常指向datetime.timezone.utc。

方法2:明确引用datetime的timezone

在使用UTC时区时,直接通过datetime.timezone访问,不受覆盖影响:

print(datetime(year, month, day, tzinfo=datetime.timezone.utc))

方法3:调整导入顺序

把from datetime import datetime, timezone, date, timedelta移到所有导入语句的最后,确保它不会被后续导入覆盖。不过这种方法可靠性较低,后续新增导入时可能再次出现冲突。

内容的提问来源于stack exchange,提问作者Lorenz Weidinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:21:07