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


Управление необходимыми пакетами Python с помощью requirements.txt

Если вы предоставляете общий доступ к проекту Python другим пользователям или используете систему сборки для создания приложения Python, необходимо указать все необходимые внешние пакеты. При планировании копирования проекта в другие расположения, где необходимо восстановить среду, необходимо также определить необходимые зависимые пакеты.

Рекомендуемый подход к указанию внешних зависимых пакетов Python — использовать файл требований (readthedocs.org). Этот файл содержит список команд pip, которые устанавливают все необходимые версии зависимых пакетов для проекта. Наиболее распространенная команда .pip freeze > requirements.txt Эта команда записывает текущий список пакетов среды в requirements.txt файл.

Файл требований содержит точные версии всех установленных пакетов. Файлы требований можно использовать для замораживания требований среды. Используя точные версии пакетов, вы можете легко воспроизвести среду на другом компьютере. Файлы требований включают пакеты, даже если они установлены с диапазоном версий, в качестве зависимости от другого пакета или установщика, отличного от pip.

Необходимые компоненты

  • Visual Studio, установленная с поддержкой рабочих нагрузок Python. Дополнительные сведения см. в статье "Установка поддержки Python в Visual Studio".

  • Файл требований. Вы можете использовать существующий файл требований или создать файл , как описано в этой статье.

Технически любое имя файла можно использовать для отслеживания требований. Однако Visual Studio предоставляет конкретную поддержку файла требований с именем "requirements.txt". Аргумент можно использовать -r <full path to file> при установке пакета, чтобы указать предпочитаемое имя файла.

Установка зависимостей, перечисленных в requirements.txt

При загрузке проекта с файлом requirements.txt можно установить все зависимости пакета, перечисленные в файле.

  1. В Обозреватель решений разверните проект и разверните узел сред Python.

  2. Найдите узел среды, для которого нужно установить пакеты. Щелкните узел правой кнопкой мыши и выберите " Установить" из requirements.txt.

    Снимок экрана: установка пакетов Python из текстового файла требований в Visual Studio 2019.

    Снимок экрана: установка пакетов Python из текстового файла требований в Visual Studio 2022.

  3. Процесс установки пакета можно отслеживать в окне вывода :

    Снимок экрана: выходные данные установки пакетов Python из текстового файла требований.

    В выходных данных перечислены все установленные пакеты, а также все обновления, необходимые для затронутых команд pip, и доступность более новых версий pip.

Установка зависимостей в виртуальной среде

Можно также установить зависимости пакета Python в существующей виртуальной среде.

  1. В Обозреватель решений разверните проект и разверните узел сред Python.

  2. Найдите узел виртуальной среды, для которого нужно установить пакеты. Щелкните узел правой кнопкой мыши и выберите " Установить" из requirements.txt.

Если вам нужно создать виртуальную среду, см. статью "Использование виртуальных сред".

Создание файла requirements.txt

Если все необходимые пакеты Python для проекта уже установлены в среде, можно создать requirements.txt файл в Visual Studio.

  1. В Обозреватель решений разверните проект и разверните узел сред Python.

  2. Найдите узел среды, для которого нужно создать файл требований. Щелкните узел правой кнопкой мыши и выберите "Создать requirements.txt".

    Снимок экрана: создание текстового файла требований для зависимостей пакета Python в Visual Studio 2019.

    Снимок экрана: создание текстового файла требований для зависимостей пакета Python в Visual Studio 2022.

Обновление или добавление записей в существующий файл requirements.txt

requirements.txt Если файл уже существует, Visual Studio отображает запрос с несколькими параметрами:

Снимок экрана: запрос, отображаемый, когда текстовый файл требований уже существует, с параметрами обновления или добавления записей или замены файла.

  • Замените весь файл: перезаписать все элементы, комментарии и параметры, определенные в requirements.text файле.
  • Обновите существующие записи: обновите описатели версий в requirements.text файле, чтобы соответствовать текущей установленной версии.
  • Обновите и добавьте записи: обновите существующие требования в requirements.text файле и добавьте все новые требования к концу файла.

Visual Studio запускается pip для обнаружения текущих требований к пакету для среды, а затем обновляет requirements.txt файл на основе выбранного фрагмента.

Установка зависимостей пакета вручную

Если pip не устанавливает зависимость пакета, определенную в requirements.txt файле, вся установка завершается ошибкой.

У вас есть два варианта решения этой проблемы:

  • Вручную измените requirements.txt файл, чтобы исключить неудачный пакет, а затем повторно запустите процесс установки.

  • Используйте параметры команды pip для ссылки на устанавливаемую версию пакета.

Обновление файла требований с помощью пип-колеса

Если вы используете pip wheel команду для компиляции зависимостей, можно добавить --find-links <path> параметр в requirements.txt файл.

  1. pip wheel Вызовите команду для компиляции списка необходимых зависимостей:

    pip wheel azure
    

    В выходных данных показаны колеса, созданные для собранных пакетов:

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. Добавьте и find-linksno-index параметры вместе с требованием версии пакета к requirements.txt файлу:

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. Запустите процесс установки pip с обновленным файлом требований:

    pip install -r requirements.txt -v
    

    Выходные данные отслеживают ход выполнения процесса установки:

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...