如何在GCP Composer环境中从tar.gz或.whl安装Python包?
解决GCP Composer从普通Web服务器安装tar.gz/whl包的方案
方案1:直接在requirements.txt中使用Web服务器URL(适用于公网可访问的包)
Composer支持直接通过HTTP/HTTPS URL安装包,只需将包的完整URL添加到requirements.txt,再更新Composer环境依赖即可:
- 在Composer对应GCS桶的
dags/目录下创建或编辑requirements.txt,添加一行:
针对tar.gz包则写:https://url.to.package/package.whlhttps://url.to.package/package.tar.gz - 进入GCP控制台的Composer页面,找到目标环境,点击更新,选择更新Python依赖,等待环境更新完成。
注意:若Web服务器在私有网络内,需确保Composer环境的VPC网络能访问该服务器,必要时配置防火墙规则允许出站流量到目标服务器的对应端口(通常是80或443)。
方案2:将包上传到GCS后安装(更稳定,推荐)
如果Web服务器访问不稳定,或包为私有资源,建议先将包上传到Composer环境关联的GCS桶,再通过GCS路径安装:
- 打开GCS控制台,找到Composer环境对应的存储桶(命名格式通常为
gs://<区域>-<环境名>-<随机串>-bucket)。 - 在桶内创建
dependencies/目录,上传你的package.whl或package.tar.gz文件。 - 编辑
requirements.txt,添加GCS路径:gs://<你的Composer桶名>/dependencies/package.whl - 同样通过Composer控制台更新Python依赖,等待部署完成。
方案3:通过自定义PyPI仓库(适用于多私有包管理场景)
若有多个此类包需要统一管理,可将普通Web服务器配置为简易PyPI仓库:
- 在Web服务器上用
twine或devpi搭建简易PyPI仓库,将tar.gz/whl包上传至仓库。 - 在Composer环境的配置中,将PyPI仓库地址添加到
pip额外参数:--extra-index-url https://your-web-server/pypi/simple/ - 之后在
requirements.txt中直接写包名,pip会自动从自定义仓库拉取对应包。
内容的提问来源于stack exchange,提问作者Liutprand
相关产品推荐
相关产品推荐

