Python no windows: console, janelas e serviço

Devem fazer uns 10 anos que trabalho com web, não tenho do que reclamar, gosto muito e pretendo continuar por um bom tempo, a não ser que apareça algo que me deixe rico antes.

No começo da minha carreira de desenvolvedor trabalhei com Delphi, MS Access, fiz alguma coisa com Visual Basic, mas nada que me orgulhasse muito. Quem olhar a minha tag cloud  não vai encontrar nenhum destes três, mas com certeza vai encontrar um python tímido, ofuscado por um Django relativamente grande.

Recentemente apareceu um projeto interessante que me deu chance de abrir um pouco a cabeça e de aprender algumas coisas novas.

Como estava enferrujado com programação para desktop, resolvi aproveitar que tenho feito muita coisa em Django e que, por isto, o Python está fresco na minha memória e resolvi utilizá-lo neste projeto. Tirando os detalhes sórdidos do que a ferramenta deveria fazer, eu precisaria desenvolver:

  • um módulo em console (é isso aí: terminal, DOS, tela preta, dir…);
  • outro módulo com interface gráfica (gui, janelinha, botão);
  • e um serviço do windows (aquele que fica escondido e você nunca sabe o que faz).

Fazer uma aplicação em console utilizando o Python não é um problema, então não preciso entrar em muitos detalhes.

Desenvolver uma aplicação com interface gráfica já fica um pouco mais complicado. Meu irmão Ramiro já havia comentado sobre isso e até me mostrou como fazer uma aplicação utilizando PyGTK, mas eu nunca gostei de aplicações baseadas em GTK no Windows, pois os controles são próprios e às vezes têm uma aparência ou comportamento estranhos.

Então eu procurei por algo que me permitisse ter controles nativos do Windows, depois de alguma pesquisa e testes encontrei a biblioteca wxPython, um porte da wxWidgets para Python. Existem muitos exemplos na web, é só achar um parecido com o que você quer e alterar à vontade.

A parte punk mesmo foi fazer um serviço para Windows, se não houvesse uma biblioteca pra auxiliar eu provavelmente largaria os betes. Brincadeira, sempre há uma solução, mas com certeza seria mais porca. Para quem precisar recomendo: Python Extensions for Windows (pywin32).

Por fim, precisei empacotar isso tudo para distribuir de uma maneira amigável sem exigir a instalação do Python, para isso entraram em cena:

  • o py2exe para compilar os scripts e embutir o Python dentro do exe ou de uma biblioteca;
  • e o NSIS para criar um instalador experto e enxuto.

O legal é a flexibilidade e agilidade do python para fazer qualquer coisa. Aprendi muitos truques que posso usar para projetos futuros.

Logo devo postar alguns links e textos sobre esta experiência por aqui, é muita coisa de uma vez só…

Sobre Rico
Software engineer

2 Responses to Python no windows: console, janelas e serviço

  1. David disse:

    Cara, sei que o post é antigo. Mas, eu procuro mais informações sobre a junção da interface gráfica com o meu code em Python. Sou padawan ainda nessa linguagem. Sabes me dizer?

    • Rico disse:

      Fala David, não sei qual é a sua dúvida, mas a linha é mais ou menos a que descrevi aqui, não costumo trabalhar com interfaces para desktop mas o wxpython me atendeu bem nessa época.

      Imagino que o você já saiba como resolver o seu problema com python, tenta ver os exemplos do wxpython pra ver como juntar tudo.

      Abraço.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: