将 pytz 导入 AWS lambda 函数

新手上路,请多包涵

我正在编写一个与日期时间一起使用的 lambda 函数,并尝试导入 pytz,以便在比较时可以考虑时区。

 import boto3
import pytz
from datetime import timedelta, date, datetime
from boto3.dynamodb.conditions import Key, Attr

导致显示

{errorMessage=Unable to import module 'lambda_function'}

但是当我删除 import pytz 时,函数会触发(如果没有时区信息,它就无法正常工作)

原文由 Scott Decker 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 716
2 个回答

您需要安装 pytz 包,以便它可用于您的 lambda。您执行此操作的方法是将 pip 安装到您要压缩并上传到 AWS 的目录中(即与包含您的 lambda 函数的文件对等)。

 pip install -t path/to/your/lambda pytz

然后当你压缩并上传它时,它就可用了。

编辑添加我创建了一个工具来为你做很多这样的事情——你可以在这里找到它: https ://github.com/jimjkelly/lambda-deploy

原文由 jimjkelly 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您无法在您的环境中访问 pytz ,也许您可以访问 python-dateutil 。在这种情况下你可以这样做:

 import datetime
import dateutil.tz

eastern = dateutil.tz.gettz('US/Eastern')
datetime.datetime.now(tz=eastern)

参考。 导入 pytz 失败时如何获取太平洋时区的当前时间?

原文由 yarick 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题