Azure App Service部署Streamlit应用失败求助
Azure Web App Zip部署Streamlit应用报错解决方案
问题描述
在B1规格Azure Web App实例上通过Zip部署Streamlit应用,Oryx日志显示requirements.txt内的依赖已成功安装,SCM_DO_BUILD_DURING_DEPLOYMENT已设为true,但启动时日志出现以下错误:
Cound not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
WARNING: Could not find virtual environment directory /home/site/wwwroot/antenv.
WARNING: Could not find package directory /home/site/wwwroot/oryx_packages.
/opt/python/3/bin/python: No module named streamlit
尝试过两种启动命令(存在语法问题):
python -m streamlit run app.py--server.port 8000 --server.address 0.0.0.0python -m streamlit hello --server.port 8000 --server.address 0.0.0.0
本地已验证requirements.txt和启动命令可用,尝试过停止重启实例、重新上传部署包,问题依旧。无法使用Docker,依赖包含Transformers、BERTopic、Sentence-Transformers。
解决步骤
- 修正启动命令语法:原命令中
app.py与--server.port之间缺少空格,导致参数识别失败。正确命令:python -m streamlit run app.py --server.port 8000 --server.address 0.0.0.0 - 指定虚拟环境启动:Oryx将依赖安装到
antenv虚拟环境,但默认启动命令未激活该环境,需先激活再启动:source /home/site/wwwroot/antenv/bin/activate && python -m streamlit run app.py --server.port 8000 --server.address 0.0.0.0 - 添加Oryx构建清单文件:在部署包根目录创建
oryx-manifest.toml文件,指定Python版本和虚拟环境路径(替换为实际使用的Python版本):[manifest] version = "1.0" [python] version = "3.9" virtualenv_dir = "antenv" - 配置PYTHONPATH环境变量:在Azure Web App的「配置-应用设置」中添加
PYTHONPATH,值设为虚拟环境的site-packages路径(替换对应Python版本号):/home/site/wwwroot/antenv/lib/python3.9/site-packages - 确认requirements.txt位置:确保
requirements.txt在部署包的根目录,而非子文件夹,Oryx仅扫描根目录的依赖文件。
内容的提问来源于stack exchange,提问作者Starch Wars
相关产品推荐
相关产品推荐

