我在使用 Gunicorn 在 Azure Web App Linux 上部署 Django 应用程序时遇到问题。部署过程似乎成功,但 Gunicorn 工作线程无法启动并出现以下错误:
[2024-03-07 04:42:30 +0000] [71] [ERROR] Exception in worker process
...
ModuleNotFoundError: No module named 'csvvalidator.validator.wsgi'
...
这是我的 YAML 文件:
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.10'
addToPath: true
- script: |
python -m venv /home/site/wwwroot/antenv
source /home/site/wwwroot/antenv/bin/activate
pip install -r requirements.txt
displayName: 'Install dependencies'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.Repository.LocalPath)'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
artifactName: 'drop'
publishLocation: 'Container'
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactStagingDirectory)'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'Subscription'
appType: 'webAppLinux'
WebAppName: 'safe-lives-copilot-dev'
packageForLinux: '$(System.ArtifactStagingDirectory)/**/*.zip'
RuntimeStack: 'PYTHON|3.10'
StartupCommand: 'gunicorn -b :8000 csvvalidator.validator.wsgi:application'
部署时创建了虚拟环境,但有警告提示找不到虚拟环境目录。
2024-03-07T04:42:30 WARNING: Could not find virtual environment directory /home/site/wwwroot/antenv.
2024-03-07T04:42:30 WARNING: Could not find package directory /home/site/wwwroot/__oryx_packages__.
任何有关解决 Gunicorn 工人启动故障的指导或见解将不胜感激。
我认为问题与环境变量有关。您需要正确定义它。可以作为参考