Fazendo deploy de aplicações Python#

Status da página:

Incompleta

Última revisão:

2021-8-24

Visão geral#

Oferecendo suporte a várias plataformas de hardware#

FIXME

Meaning: x86, x64, ARM, others?

For Python-only distributions, it *should* be straightforward to deploy on all
platforms where Python can run.

For distributions with binary extensions, deployment is major headache.  Not only
must the extensions be built on all the combinations of operating system and
hardware platform, but they must also be tested, preferably on continuous
integration platforms.  The issues are similar to the "multiple Python
versions" section above, not sure whether this should be a separate section.
Even on Windows x64, both the 32 bit and 64 bit versions of Python enjoy
significant usage.

Empacotamento de sistema operacional e instaladores#

FIXME

- Building rpm/debs for projects
- Building rpms/debs for whole virtualenvs
- Building macOS installers for Python projects
- Building Android APKs with Kivy+P4A or P4A & Buildozer

Windows#

FIXME

- Building Windows installers for Python projects

Pynsist#

Pynsist é uma ferramenta que agrupa programas Python junto com o interpretador Python em um único instalador baseado em NSIS. Na maioria dos casos, o empacotamento requer apenas que o usuário escolha uma versão do interpretador Python e declare as dependências do programa. A ferramenta baixa o interpretador Python especificado para Windows e o empacota com todas as dependências em um único instalador executável do Windows.

O programa instalado pode ser iniciado a partir de um atalho que o instalador adiciona ao menu iniciar. Ele usa um interpretador Python instalado em seu diretório de aplicação, independente de qualquer outra instalação Python no computador.

Uma grande vantagem do Pynsist é que os pacotes do Windows podem ser construídos no Linux. Existem vários exemplos para diferentes tipos de programas (console, GUI) na documentação. A ferramenta é lançada sob a licença do MIT.

Pacotes de aplicações#

FIXME

- wheels kinda/sorta

Windows#

py2exe#

py2exe é uma extensão do distutils que permite construir programas executáveis autônomos Windows (32 bits e 64 bits) a partir de scripts Python. Versões Python incluídas no ciclo de desenvolvimento oficial são suportadas (consulte Status dos ramos do Python). py2exe pode construir executáveis de console e executáveis de janelas (GUI). A construção de serviços do Windows e servidores DLL/EXE COM podem funcionar, mas não são ativamente suportados. A extensão distutils é lançada sob a licença MIT e Mozilla Public License 2.0.

macOS#

py2app#

py2app é um comando Python do setuptools que permitirá que você crie pacotes e plug-ins de aplicações autônomas para o macOS a partir de scripts Python. Observe que o py2app DEVE ser usado no macOS para criar aplicações; ele não pode criar aplicação do Mac em outras plataformas. py2app é lançado sob a licença MIT.

Unix (incluindo Linux e macOS)#

pex#

pex é uma biblioteca para gerar arquivos .pex (Python EXecutáveis) que são ambientes Python executáveis no espírito de virtualenvs. pex é uma expansão das ideias descritas na PEP 441 e torna a implantação de aplicações Python tão simples quanto o cp. Os arquivos pex podem até incluir várias distribuições específicas da plataforma Python, o que significa que um único arquivo pex pode ser portátil entre Linux e macOS. pex é lançado sob a licença Apache 2.0.

Gerenciamento de configuração#

FIXME

puppet
salt
chef
ansible
fabric