Поделиться через


Использование пакетов из индекса пакетов Python (PyPI)

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Используя Azure Artifacts, разработчики могут публиковать и использовать пакеты как из каналов Azure Artifacts, так и внешних реестров, таких как PyPI.org. Включив upstream источники, вы можете упростить управление пакетами, используя один канал для управления как собственными пакетами, так и пакетами, потребляемыми из общедоступных реестров. После включения Azure Artifacts автоматически сохраняет копию любого пакета, установленного сотрудником или выше из вышестоящего источника. В этой статье описано, как настроить проект и использовать командную строку для эффективного использования пакетов Python из PyPI.

В этой статье вы узнаете, как выполнять следующие задачи.

  • Включение вышестоящих источников для веб-канала
  • Добавление PyPI в качестве вышестоящего источника
  • Настройка проекта
  • Установка пакетов из индекса пакета Python

Предварительные требования

  • Организация Azure DevOps и проект. Создайте организацию или проект, если вы еще не сделали этого.

  • Веб-канал артефактов Azure.

  • Скачайте Python.

Включите восходящие источники при создании нового канала

Если вы еще не создавали веб-канал, следуйте приведенным ниже шагам, чтобы создать новый. Установите флажок для вышестоящих источников, чтобы включить вышестоящие источники. Если у вас уже есть канал, перейдите к следующему шагу, чтобы добавить PyPI как вышестоящий источник.

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите Артефакты, а затем выберите Создать канал, чтобы создать новый канал.

  3. Введите описательное имя веб-канала и определите его видимость (указывающее, кто может просматривать пакеты в веб-канале). Укажите область действия вашего веб-канала и отметьте флажок "Вышестоящие источники", чтобы включить пакеты из общедоступных реестров.

  4. После завершения работы выберите Создать.

    Скриншот, демонстрирующий, как создать канал потребностей.

Добавьте PyPI в качестве нового вышестоящего источника

Если вы выбрали флажок "Вышестоящий источник" во время создания веб-канала, PyPI должен быть автоматически включен в качестве вышестоящего источника. В противном случае его можно добавить вручную, выполнив следующие действия.

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите Артефакты, и щелкните значок Значок шестеренки шестеренки, чтобы перейти к Параметры канала.

  3. Выберите Входящие источники и нажмите Добавить источник, чтобы добавить новый входящий источник.

  4. Выберите общедоступный источник и выберите PyPI (https://pypi.org/) в раскрывающемся меню.

  5. Нажмите кнопку "Добавить" , а затем нажмите кнопку "Сохранить " в правом верхнем углу, чтобы сохранить изменения.

    Снимок экрана, на котором показано, как добавить PyPI в качестве нового вышестоящего источника.

Аутентификация с помощью вашей ленты

  1. Убедитесь, что вы скачали Python, а затем выполните следующую команду, чтобы обновить диспетчер пакетов Python:

    python -m pip install --upgrade pip
    
  2. Выполните следующую команду, чтобы установить ключ Azure Artifacts:

    pip install keyring artifacts-keyring
    
  3. Создайте личный токен доступа с областью Упаковка и Чтение для проверки подлинности с помощью Azure DevOps. При первом подключении к Azure DevOps необходимо ввести учетные данные при появлении запроса. Укажите имя пользователя (любая строка) и личный маркер доступа в указанных полях. Эти учетные данные будут кэшироваться локально и автоматически использоваться для входа в следующий раз, когда вы используете службу.

  4. Перейдите в папку проекта и выполните следующую команду, чтобы создать новую виртуальную среду:

    python -m venv <VIRTUAL_ENVIRONMENT_NAME>
    
  5. Создайте файл pip.ini (Windows) или файл pip.conf (Mac/Linux) в виртуальной среде, а затем вставьте следующий фрагмент кода в файл. Обязательно замените заполнители соответствующими сведениями и не загружайте этот файл в общественный репозиторий, так как он содержит ваш персональный токен доступа.

    • Лента обновлений проекта

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      
    • Канал с организационной областью охвата:

      [global]
      extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/pypi/simple/
      

Установка пакетов из PyPI

Теперь, когда мы настроили проект для аутентификации через наш репозиторий, мы можем начать установку пакетов из внешнего источника PyPI. В этом примере мы установим Flask:

  1. В окне командной строки перейдите в папку проекта и выполните следующую команду, чтобы активировать виртуальную среду. Замените заполнитель именем созданной ранее виртуальной среды:

    <YOUR_VIRTUAL_ENVIRONMENT_NAME>/Scripts/Activate.ps1
    
  2. Выполните следующую команду, чтобы проверить пакеты, установленные в виртуальной среде:

    pip list
    
  3. Выполните следующую команду, чтобы установить Flask.

    pip install -U Flask
    
  4. После установки пакета Azure Artifacts сохранит его копию в канале. Ваш пакет должен быть доступен в вашей ленте, как показано на снимке экрана ниже.

    Скриншот, показывающий установленные из исходного репозитория PyPI пакеты.