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

如何在AWS Glue Python Shell中指定多个外部Python库(.egg/.whl文件)

解决AWS Glue Python Shell引入多个外部库的问题

我之前在使用Glue Python Shell时也碰到过一模一样的问题——单个外部库能正常加载,但多个库就卡壳了,分享几个亲测有效的解决办法:

方法1:将所有依赖打包成单个ZIP文件

这是最省心的方式,步骤如下:

  • 本地把需要的pandas.whl、numpy.whl、openpyxl.whl、pytz.whl(或对应的.egg文件)放到同一个文件夹里,不要嵌套子文件夹
  • 把这个文件夹里的所有文件直接压缩成ZIP包(确保ZIP根目录就是这些库文件,不是外层文件夹)
  • 上传这个ZIP包到你的S3存储桶,然后在Glue作业的「Python library path」配置项里填写这个ZIP包的完整S3路径(比如s3://your-bucket/libraries/deps.zip)

Glue会自动解压这个ZIP包,并加载里面的所有外部库,完全不需要额外配置。

方法2:使用--extra-py-files命令行参数指定多个路径

如果不想打包,也可以直接通过作业参数指定多个库文件:

  • 在Glue作业的「Job parameters」部分,添加一个新的参数:
    • 参数键:--extra-py-files
    • 参数值:把所有库的S3完整路径用逗号分隔,比如:
      s3://your-bucket/libraries/pandas-2.1.3-cp39-none-manylinux_2_17_x86_64.whl,s3://your-bucket/libraries/numpy-1.26.2-cp39-none-manylinux_2_17_x86_64.whl,s3://your-bucket/libraries/openpyxl-3.1.2-py2.py3-none-any.whl,s3://your-bucket/libraries/pytz-2023.3.post1-py2.py3-none-any.whl
      
  • 保存配置后运行作业,Glue会依次加载这些指定的库文件。

关键注意事项

  • 版本兼容性:一定要下载和Glue Python Shell运行环境匹配的库版本。比如如果你的Glue作业用的是Python 3.9,就必须下载标注cp39的whl文件,否则会出现导入失败的情况。
  • 依赖顺序:如果库之间有依赖关系(比如pandas依赖numpy),建议把被依赖的库放在参数值的前面,虽然Glue通常能自动处理,但这样可以避免潜在的加载问题。
  • 不要冗余文件:打包或指定的时候只需要核心的.whl/.egg文件,不要把本地安装时生成的*.dist-info这类文件夹也包含进去,会增加不必要的体积甚至导致加载错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:57:27