Python Azure Function 即使在前面的步骤中安装也找不到模块

问题描述 投票:0回答:1

我正在尝试创建一个 python azure 函数 CI 管道构建。在yml文件中,安装依赖项后(pytest存在于requirements.txt中),找不到pytest模块。我似乎无法弄清楚问题是什么。我错过了什么?

  - task: UsePythonVersion@0
    displayName: Use Python 3.11
    inputs:
      versionSpec: 3.11
  - task: Bash@3
    displayName: Install Application Dependencies
    inputs:
      targetType: inline
      script: >-
        python -m pip install --upgrade pip

        pip install --target="$(System.DefaultWorkingDirectory)/.python_packages/lib/site-packages" -r requirements.txt
  - script:  pytest . --verbose

Azure DevOps 在 pytest 步骤上失败,提示无法找到 pytest。

requirements.txt

pytest~=8.1.1

我尝试过的:

  • 添加--target(如你所见)
  • 将目标:主机添加到 pytest 脚本
  • venv(有效,但我不想使用 venv)
azure azure-functions yaml continuous-integration azure-yaml-pipelines
1个回答
0
投票

我尝试在我的requirements.txt中添加

pytest
模块并运行下面的Azure Devops yaml管道,函数和包已成功部署。

我的 Azure DevOps 管道:-

trigger:
- main

variables:
  
  azureSubscription: '3xxxxxxxxxxx1a81b0e'

  
  functionAppName: 'valleyfunc765'

  
  vmImageName: 'ubuntu-latest'

  
  workingDirectory: '$(System.DefaultWorkingDirectory)'

stages:
- stage: Build
  displayName: Build stage

  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)

    steps:
    - bash: |
        if [ -f extensions.csproj ]
        then
            dotnet build extensions.csproj --runtime ubuntu.16.04-x64 --output ./bin
        fi
      workingDirectory: $(workingDirectory)
      displayName: 'Build extensions'

    - task: UsePythonVersion@0
      displayName: 'Use Python 3.11'
      inputs:
        versionSpec: 3.11 # Functions V2 supports Python 3.6 as of today

    - bash: |
        pip install --target="./.python_packages/lib/site-packages" -r ./requirements.txt
      workingDirectory: $(workingDirectory)
      displayName: 'Install application dependencies'

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

    - publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()

  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: 'development'
    pool:
      vmImage: $(vmImageName)

    strategy:
      runOnce:
        deploy:

          steps:
          - task: AzureFunctionApp@1
            displayName: 'Azure functions app deploy'
            inputs:
              azureSubscription: '$(azureSubscription)'
              appType: functionAppLinux
              appName: $(functionAppName)
              package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'

我的要求.txt:-

azure-functions
pytest

输出:-

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.