Azure Synapse Analytics安装sentence-transformers工作区包遇问题求助
解决Azure Synapse工作区包安装sentence-transformers报错的方案
核心原因
sentence-transformers是依赖链复杂的包,上传源码tar.gz包时,Synapse工作区包的安装机制无法自动拉取并安装所有依赖;而笔记本里的%pip install会自动处理依赖树,所以能成功。
可行解决办法
1. 用全依赖wheel包替代源码包
- 本地或虚拟环境里生成sentence-transformers及所有依赖的wheel包:
pip wheel sentence-transformers==2.2.2 -w ./wheels - 把
./wheels下所有.whl文件打包成一个zip(别嵌套目录,直接把whl放zip根目录) - 上传这个zip到Synapse工作区包,配置到Spark池后测试
2. 给Spark池加初始化脚本
- 写个bash脚本
install-packages.sh,内容:#!/bin/bash pip install sentence-transformers==2.2.2 - 把脚本传到Synapse关联的ADLS Gen2存储,拿到路径(格式:
abfss://<容器名>@<存储账户名>.dfs.core.windows.net/脚本路径/install-packages.sh) - 打开Spark池配置,找到「初始化脚本」选项,添加上述路径
- 重启Spark池,启动时会自动执行脚本完成安装
3. 先装依赖再装主包
- 用
pip show sentence-transformers==2.2.2命令查看它的所有直接依赖 - 把这些依赖包逐个上传到工作区包并配置到Spark池
- 再上传sentence-transformers-2.2.2.tar.gz,此时依赖已存在,能正常安装
4. 校验包的完整性
- 从PyPI官方源重新下载sentence-transformers-2.2.2.tar.gz,避免本地打包损坏
- 校验文件哈希值和PyPI上的一致(PyPI对应版本的files页面能看到哈希):
sha256sum sentence-transformers-2.2.2.tar.gz - 哈希匹配后再上传配置
内容的提问来源于stack exchange,提问作者Haritha Thilakarathne
相关产品推荐
相关产品推荐

