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

AWS Lambda Python函数初始化报错:name 'tz' is not defined

问题排查与修复方案

嘿,看了你的代码描述和遇到的问题,立刻发现了核心症结:你在代码里使用了datetime模块的方法,但完全没导入它!这也是为什么相同逻辑用Node.js能正常运行的原因——Node里的Date是全局可用的API,不需要手动导入,而Python对模块的导入要求很严格,未导入就使用会直接抛出错误。

修正后的代码

把datetime模块导入加上,同时建议给Lambda函数添加返回值(否则会触发日志警告):

import pytz
import urllib3
import calendar
from datetime import datetime  # 新增这行关键导入

def lambda_handler(event, context):
    tz = pytz.timezone('Asia/Calcutta')
    utc = datetime.utcnow()
    utc = pytz.utc.localize(utc, is_dst=None).astimezone(tz)
    time = utc.strftime("%H")  # 注意:这里已经是印度时区(IST)的小时,不是UTC了哦
    text = ""
    textaum = ""
    
    # Lambda函数需要返回值,避免日志警告
    return {
        "statusCode": 200,
        "body": f"Current IST hour: {time}"
    }

额外注意事项

  • 你打包依赖的操作是没问题的,这次错误属于代码层面的导入遗漏,和依赖包无关
  • 可以用Lambda控制台的「测试」功能快速验证修正后的代码,实时查看日志确认是否运行正常
  • 如果之后还遇到依赖相关的错误,可以检查一下.zip包的结构:所有依赖包要和你的主代码文件在同一层级,不能嵌套在子文件夹里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:28:30