Python 未找到模块 Azure 函数应用

Python module not found Azure function app

我正在尝试通过 Azure DevOps 将 Python 应用程序部署到 Azure Function App。

在我的构建管道中,我可以看到它从项目的根文件夹中的 requirements.txt 成功安装了所需的包 Pygresql,但是当我部署到应用程序时,我收到了一条找不到模块的消息在 Azure 中。

请在下面找到我的构建管道配置:

pool:
name: Azure Pipelines

trigger:
branches:
    include:
    - master
    
steps:
- bash: |
  if [ -f extensions.csproj ]
  then
      dotnet build extensions.csproj --output ./bin
  fi
 displayName: 'Build extensions'

 - task: UsePythonVersion@0
   displayName: 'Use Python 3.7'
 inputs:
   versionSpec: 3.7

 - script: |
    python -m venv worker_venv
    source worker_venv/bin/activate
    python -m pip install --upgrade pip
    pip install setuptools
    pip install setup
    pip install -r requirements.txt
 displayName: 'Install Application Dependencies'

 - task: ArchiveFiles@2
 displayName: 'Archive files'
 inputs:
   rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
   includeRootFolder: false

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'

如有任何帮助,我们将不胜感激!

非常感谢,

英里

修复找不到模块错误的方法:

方式一

在您的脚本部分指定您的 python 版本

.
.
.
# either you can use script / bash. Here i am using bash
 - bash: |
    python3.7 -m venv worker_venv
    source worker_venv/bin/activate
    python3.7 -m pip install --upgrade pip
    pip3.7 install setuptools
    pip3.7 install setup
    pip3.7 install -r requirements.txt
 displayName: 'Install Application Dependencies'
.
.
.

参考build CI/CD for python azure functions using Azure DevOps

方式 2

不要使用 pip install -r requirements.txt,请尝试使用下面的

# for python version 3.7
pip install --target="./.python_packages/lib/site-packages" -r ./requirements.txt

# for python version 3.6
pip install --target="./.python_packages/lib/python3.6/site-packages" -r ./requirements.txt

使用 python azure 函数引用 example yaml build pipeline

方式 3

而不是使用 python -m venv worker_venv 尝试使用 python -m venv .python_packages

参考 github issue 了解信息。