ModuleNotFoundError: нет модуля с именем «azure.keyvault» — запуск конвейера Azure

Я пытаюсь запустить несколько сценариев ML с помощью конвейера Azure в студии Azure ML. Я также создал новую среду машинного обучения со всеми необходимыми зависимостями, но столкнулся с проблемой, показанной ниже.

ModuleNotFoundError: нет модуля с именем «azure.keyvault».

Вещи, которые я пробовал до сих пор

  1. создал новую среду со всеми необходимыми зависимостями.
  2. изменил другую существующую среду, добавил туда свои зависимости и использовал ее для запуска моего конвейера
  3. В yaml-файле моего проекта я также добавил шаг под названием pip install azure-keyvault-secrets в раздел сценария.

Каким-то образом мой код не смог найти модуль azure-keyvault-secrets, хотя это та же самая среда. Пожалуйста, помогите

Файл conda.yml моего Azure env выглядит следующим образом:

channels:
  - anaconda
  - conda-forge
dependencies:
  - python=3.8.13
  - pip:
      - azureml-defaults~=1.51.0
      - azureml-dataprep[pandas]
      - azure-storage-blob
      - pyarrow
      - xlrd
      - openpyxl
      - pyyaml
      - tqdm
      - catboost
      - pickle-mixin
      - azure-keyvault-secrets
  - scikit-learn
  - ipykernel
  - matplotlib
  - pandas
  - pip
  - xlrd
  - joblib
  - tqdm
  - time
name: project_ml

Какую версию Python вы используете в своей среде машинного обучения?

Bright Ran-MSFT 27.08.2024 14:09

@BrightRan-MSFT - я использую python=3.8.13

ssuhas76 27.08.2024 14:10

Попробуйте обновиться до последней версии Python 3.12. @ssuhas76

Bright Ran-MSFT 27.08.2024 14:27
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
3
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Python 3.8 — это минимальная версия Python, поддерживаемая пакетом azure-keyvault-secrets (см. здесь). Однако Python 3.8 — довольно старая версия, и при работе с последней версией azure-keyvault-secrets могут возникнуть проблемы.

Вы можете попробовать обновить версию Python до последней версии Python 3.12, а затем снова попробовать использовать модуль в своем проекте.

В конвейерах Azure DevOps вы можете использовать задачу UsePythonVersion@0 для установки указанной версии Python.

variables:
  PythonVersion: '3.12'

steps:
- task: UsePythonVersion@0
  displayName: 'Install Python v$(PythonVersion)'
  inputs:
    versionSpec: '$(PythonVersion)'

- script: |
    pip install azure-keyvault-secrets
  displayName: 'Install module azure.keyvault'

Кроме того, вы также можете использовать pip для установки пакета «azure-keyvault», он устанавливает следующие пакеты для Azure Key Vault:

  • azure-keyvault-keys v4.x
  • azure-keyvault-secrets v4.x
  • сертификаты Azure-keyvault v4.x

Другие вопросы по теме

Похожие вопросы

Как найти AZURE_ENDPOINT, AZURE_API_KEY и KNOWLEDGE_BASE_ID на последней версии портала Azure?
Как получить список конвейеров в фабрике данных Azure для определенной ветки?
Можно ли получить значение из большого двоичного объекта (загруженного в контейнер CSV) и передать его в приложение логики?
Развертывание функции Azure с помощью действий Github завершается неудачей без указания четкой причины
Доступ к параметрам приложения логики в коде сценария PowerShell в стандартных рабочих процессах
Azure: команда nuget завершилась с ошибкой с кодом выхода (null) и error() — пакеты не удалось восстановить
Как запросить разрешения OAuth2 для субъектов службы в Entra ID с помощью Microsoft Graph Powershell?
(111: Соединение отклонено) при подключении к восходящему каналу — многоконтейнерное приложение NGINX/Docker
Как создать работающий GraphServiceClient и запросить у Graph имена групп
Как настроить EF Core в функции Azure, изолированной .NET8, с аутентификацией приложения Entra?