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

在MWAA中同时使用自定义Wheel与PyPI依赖遇阻求助

问题分析与修复方案

核心错误点

  1. --no-index参数误用
    这个参数会强制pip不从任何PyPI源下载依赖,只从--find-links指定的路径查找。你的PyPI依赖(比如awswrangler、sagemaker)根本不在本地find-links路径里,自然会报ModuleNotFoundError。

  2. 路径不匹配本地运行器结构
    你写的/usr/local/airflow/plugins/plugins是线上MWAA容器的路径,但本地运行器中,plugins.zip的内容会被挂载到/usr/local/airflow/plugins目录下,而你的wheel包是放在plugins.zip根目录,所以路径完全不对。

修正步骤

1. 调整requirements.txt配置

移除--no-index,修正--find-links路径,同时简化自定义wheel的引用:

--find-links /usr/local/airflow/plugins
apache-airflow-providers-snowflake==4.0.2
apache-airflow-providers-mysql==4.0.0
awswrangler==2.19.0
sagemaker==2.140.1
example_wheel.whl
  • 去掉--no-index后,pip会优先从--find-links找自定义包,找不到的公共依赖自动从PyPI拉取
  • --find-links指向本地运行器中wheel包的实际挂载目录
  • 直接写example_wheel.whl即可,因为--find-links已经指定了目录

2. 修正plugins.zip打包方式

  • 确保example_wheel.whl直接放在plugins.zip的根目录,不要嵌套在plugins子文件夹里
  • 打包时,进入你的本地plugins目录,直接压缩里面的所有内容(包括wheel包),而不是压缩plugins目录本身

3. 本地运行验证

启动本地运行器后,可进入容器检查依赖安装情况:

docker exec -it mwaa-local-runner-airflow-webserver-1 pip list

查看输出中是否包含awswrangler、sagemaker以及你的自定义wheel包名称。

内容的提问来源于stack exchange,提问作者Or Bar Yaacov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:18:28