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

AWS Glue连接SQL Server时pyodbc wheel包不兼容平台报错如何解决

报错根因

你使用的pyodbc-4.0.32-cp37-cp37m-win32.whl是Windows 32位平台编译的Python wheel包,而AWS Glue作业的运行底层是64位Amazon Linux系列操作系统,完全不兼容Windows平台的编译产物,因此无论换Python2还是Python3对应的Windows版本wheel包都无法解决问题。

报错信息:
com.amazonaws.services.glue.PythonModuleInstaller [main] ERROR: pyodbc-4.0.32-cp37-cp37m-win32.whl is not a supported wheel on this platform.

解决方案

方案1:直接通过PyPI安装(适用Glue作业可访问公网场景)

无需自行上传wheel包,直接修改作业参数--additional-python-modules的Value为pyodbc==4.0.32即可,Glue会自动拉取适配Linux运行环境的对应版本包。

方案2:离线场景自行上传适配的wheel包

如果Glue作业配置为无公网访问,按照以下步骤操作:

  • 先确认当前使用的Glue版本对应的Python版本:
    • Glue 2.0/3.0:对应Python 3.7,需下载文件名带cp37、manylinux_x86_64后缀的wheel包
    • Glue 4.0:对应Python 3.10,需下载文件名带cp310、manylinux_x86_64后缀的wheel包
  • 上传正确的wheel包到S3的对应路径,以Glue 3.0为例,正确的作业参数Value为:
    pyodbc==4.0.32,s3://bucketname/python_scripts/python-libs/pyodbc-4.0.32-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
额外注意事项

pyodbc依赖系统层面的ODBC驱动才能正常连接SQL Server,你需要在Python脚本开头添加以下代码安装对应依赖:

import subprocess
# 安装unixODBC及SQL Server 17驱动(适配Amazon Linux 2环境)
subprocess.run(['sudo', 'amazon-linux-extras', 'install', 'epel', '-y'], check=True)
subprocess.run(['sudo', 'yum', 'install', '-y', 'unixODBC', 'unixODBC-devel'], check=True)
subprocess.run(['sudo', 'yum', 'install', '-y', 'https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm'], check=True)
subprocess.run(['sudo', 'yum', 'install', '-y', 'msodbcsql17'], check=True)

如果不想配置复杂的系统依赖,也可以替换使用pymssql库连接SQL Server,仅需在作业参数中添加pymssql==2.2.7即可直接使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:45:03