Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Сборка приложений на Python

Сборка приложений на Python

Евгений Ильин (МАИ) @ Moscow Python Meetup 56
"Использование Fabric в качестве замены Makefile. Совместное использование Fabric, Ansible и Vagrant".

Видео: http://www.moscowpython.ru/meetup/56/python-apps-build/

Moscow Python Meetup
PRO

May 22, 2018
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. 1
    Евгений Ильин
    http://jenyay.net
    Сборка приложений на Python

    View Slide

  2. 2
    OutWiker
    https://github.com/jenyay/outwiker

    View Slide

  3. 3
    Инструменты для создания
    запускаемых файлов
    cx_Freeze / PyInstaller

    View Slide

  4. 4
    Задачи для сборки под Windows

    Создание запускаемых файлов (.exe).

    Создание инсталятора.

    Создание архива с портабельной версией.

    Создание сборки, включающей все плагины.

    View Slide

  5. 5
    Задачи для сборки под Linux

    Создание бинарной сборки.

    Создание архива с бинарной сборкой.

    Создание deb-пакета.

    Создание AppImage.

    Создание других видов пакетов (rpm, snap, ...)

    View Slide

  6. 6
    Другие задачи для сборки

    Создание архива с полными исходниками.

    Создание архива с исходниками, минимально
    необходимыми для запуска программы.

    Создание отдельных архивов с каждым плагином.

    Сборка документации.

    И другие.

    View Slide

  7. 7
    Когда-то давно...

    View Slide

  8. 8
    Когда-то давно...
    был изобретен make и Makefile

    View Slide

  9. 9
    Выполнение задач с помощью make

    make win

    make deb

    make source

    make test

    ...

    View Slide

  10. 10
    Fabric
    http://www.fabfile.org/

    View Slide

  11. 11
    Выполнение задач с помощью Fabric

    fab win

    fab deb

    fab source

    fab test

    ...

    View Slide

  12. 12
    fabfile.py с двумя задачами

    View Slide

  13. 13
    Выполнение команд Fabric

    View Slide

  14. 14
    Использование функций
    lcd и local

    View Slide

  15. 15
    fabfile.py с двумя задачами

    View Slide

  16. 16
    Просмотр списка задач Fabric

    View Slide

  17. 17
    fabfile.py с комментариями

    View Slide

  18. 18
    Задачи из fabfile.py с
    комментариями

    View Slide

  19. 19
    fabfile.py со вспомогательными
    функциями

    View Slide

  20. 20
    Задачи из fabfile.py с
    комментариями

    View Slide

  21. 21
    fabfile.py с использованием
    декораторов

    View Slide

  22. 22
    Передача параметров в задачи
    Вызов задачи с параметрами:

    View Slide

  23. 23
    Задачи fabfile для OutWiker (1)

    View Slide

  24. 24
    Задачи fabfile для OutWiker (2)

    View Slide

  25. 25
    Сборка на
    виртуальных машинах

    View Slide

  26. 26
    Сборка на виртуальных машинах
    Fabfic Vagrant
    Ansible
    virtual 1
    virtual 2

    View Slide

  27. 27
    Непрерывная интеграция на AppVeyor.
    appveyor.yml
    version: 2.1.0.xxx.{build}
    image:
    - Visual Studio 2015
    environment:
    PY_PYTHON: 3.6-32
    PYTHONIOENCODING: utf_8
    PIPENV_IGNORE_VIRTUALENVS: 1
    init:
    - cmd: py -m pip install pipenv
    install:
    - cmd: py -m pipenv update --dev
    build_script:
    - cmd: py -m pipenv run fab win:0,1,0
    test_script:
    - cmd: py -m pipenv run fab test:"-s"
    artifacts:
    - path: build\*\windows\*.zip
    name: windows_zip
    - path: build\*\windows\*.7z
    name: windows_7z
    - path: build\*\plugins\*\*.zip
    name: plugins

    View Slide

  28. 28
    Выводы

    Fabric — отличная замена make.

    Перейти с Makefile на fabfile.py можно
    достаточно быстро.

    Для создания бинарных сборок под Linux
    лучше использовать виртуальные машины.

    Fabric удобно использовать вместе с Ansible и
    Vagrant.

    View Slide

  29. 29
    Контакты и ссылки
    E-mail: [email protected]
    Сайт: http://jenyay.net
    Github: https://github.com/Jenyay
    OutWiker
    Страница программы: http://jenyay.net/Soft/Outwiker
    Исходники: https://github.com/Jenyay/outwiker
    Статья «Основы использования Fabric»:
    http://jenyay.net/Programming/Fabric

    View Slide