gpt4 book ai didi

python - Azure 应用服务无法部署 Streamlit 应用程序

转载 作者:行者123 更新时间:2023-12-03 06:10:52 25 4
gpt4 key购买 nike

我有一个 Streamlit 应用程序,我正在尝试将其部署在 B1 Azure Web 应用程序实例上。

我使用本教程作为引用:https://benalexkeen.com/deploying-streamlit-applications-with-azure-app-services/

我正在推送 zip 部署,并查看部署中心下的 oryx 日志,我可以确认 pip 安装了我的 requirements.txt 中的所有内容,没有警告或错误。 SCM_DO_BUILD_DURING_DEPLOYMENT 设置为 true

我的启动命令python -m Streamlit run app.py--server.port 8000 --server.address 0.0.0.0我也尝试过python -m Streamlit hello --server .port 8000 --server.address 0.0.0.0 只是为了看看我是否能让 Streamlit 的 hello world 示例正常工作。

但是,在部署日志流中:

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

Docker 不适合我使用。必须是通过 zip 方式。我已经安装/正在使用的其他一些可能相关的软件包:TransformersBERTopicSentence-Transformers

我已在本地尽我所能来确认 requirements.txt 和启动命令是否有效。我还停止并重新启动了应用程序实例,并重新上传了部署 zip。

最佳答案

导入bertopic依赖项时发生此错误,因为bertopic依赖项需要安装C++ Microsoft Visual Studio代码构建工具和Python 3.7,请参阅here.但不幸的是,Streamlit 应用程序仅支持 带有 B1 SKU 的 Python 3.10,不支持 bertopic pip 包。引用我的回答here.其中提供了通过 github 操作工作流程部署 Streamlit 应用程序所需遵循的步骤和先决条件。

enter image description here

enter image description here

python -m streamlit run app.py --server.port 8000 --server.address 0.0.0.0

在删除 bertopic 依赖项后,通过上述应用程序中的 VS 代码,我的部署成功了,如下所示:-

enter image description here

我还尝试通过 Azure DevOps 管道部署 Streamlit 应用程序,如下所示:-

我的 DevOps 管道:-

trigger:
- main

variables:

azureServiceConnectionId: 'xxxx-xxx-bxx-018f5xxx97a2'


webAppName: 'valleywebapp09'


vmImageName: 'ubuntu-latest'


environmentName: 'valleywebapp09'


projectRoot: $(System.DefaultWorkingDirectory)


pythonVersion: '3.10'

stages:
- stage: Build
displayName: Build stage
jobs:
- job: BuildJob
pool:
vmImage: $(vmImageName)
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(pythonVersion)'
displayName: 'Use Python $(pythonVersion)'

- script: |
python -m venv antenv
source antenv/bin/activate
python -m pip install --upgrade pip
pip install setup
pip install -r requirements.txt
workingDirectory: $(projectRoot)
displayName: "Install requirements"

- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(projectRoot)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true

- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
displayName: 'Upload package'
artifact: drop

- stage: Deploy
displayName: 'Deploy Web App'
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeploymentJob
pool:
vmImage: $(vmImageName)
environment: $(environmentName)
strategy:
runOnce:
deploy:
steps:

- task: UsePythonVersion@0
inputs:
versionSpec: '$(pythonVersion)'
displayName: 'Use Python version'

- task: AzureWebApp@1
displayName: 'Deploy Azure Web App : valleywebapp09'
inputs:
azureSubscription: $(azureServiceConnectionId)
appName: $(webAppName)
package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip

enter image description here

关于python - Azure 应用服务无法部署 Streamlit 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76807756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com