Различия между версиями 6 и 7
Версия 6 от 2022-05-23 15:25:46
Размер: 3279
Редактор: FrBrGeorge
Комментарий:
Версия 7 от 2022-05-27 21:05:26
Размер: 3279
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 1: Строка 1:
= 05/16 Пакетирование и деплоймент = = 05.16 Пакетирование и деплоймент =

05.16 Пакетирование и деплоймент

Зависимости:

  • Полные (когда нужен один модуль, а ставится несколько) / прямые (только нужные модули)
    • pip list --not-required — только прямые

  • Эксплуатационные (нужны для работы) / сборочные (нужны для разработки) / мусор (поставились случайно)
  • {i} Использование pipenv:

    • install

    • install -d

    • pip install для мусора

    • pipenv --rm + pipenv update + pipenv update -d для избавления от мусора

  • Вариант — два файла requirements.txt со сборочными и установочными зависимостями (pip install -r …)

Сборка бинарного дистрибутива:

  • Использование setuptools (на примере GradeProject2021)

  • Настройка pyproject.toml и выбор setuptools

    • Указание сборочных зависимостей
  • Файл setup.cfg

    • Создание бинарного дистрибутива wheel
      • Указание эксплуатационных зависимостей
        • install_requires =

      • Указание дополнительных данных пакета
        • include_package_data = True и [options.package_data]

      • Задание пускового сценария
        • [options.entry_points]

Где хранить дополнительные данные?

  • Не в /

  • Не в /usr/share

  • Не в /usr/lib/python3

    • ⇒ нельзя забивать константу-полный путь
  • Не в .

    • ⇒ нельзя использовать относительный путь
  • В составе модуля
    • формировать путь до дополнительных файлов в каталоге с модулем

      • os.path.dirname(__file__) + …

Создание архива с исходниками:

  • Файлы по умолчанию
  • Файл MANIFEST.in

Проверка дистрибутивов:

  1. Бинарного: установка .whl в чистый venv — должно сразу заработать!

  2. Исходного: распаковка .tar.gz в чистый venv, установка сборочных зависимостей — должно собираться!

Д/З

{i} Доведение прошлого Д/З до состояний (1), (2)

  • Скопировать решение прошлого Д/З в новый каталог (согласно правилам)
  • Довести его до состояния работоспособности бинарного и исходного дистрибутивов

LecturesCMC/PythonDevelopment2022/Prac/12_Packaging (последним исправлял пользователь FrBrGeorge 2022-05-27 21:05:26)