Pergunta

Eu costumava ser um desenvolvedor java e usamos ferramentas como formiga ou Maven para gerenciar nosso desenvolvimento / testes / ambientes UAT de uma forma padronizada. Isto permitiu-nos para lidar com dependências da biblioteca, definindo variáveis ??OS, compilar, implantar, executar testes de unidade, e todas as tarefas necessárias. Além disso, os scripts gerados garantido que todos os ambientes foram quase igualmente configurado, e toda a tarefa foram realizadas da mesma forma por todos os membros da equipe.

Estou começando a trabalhar em Python e agora eu gostaria que o seu conselho em que ferramentas devo usar para realizar o mesmo descrito para Java.

Foi útil?

Solução

  1. virtualenv para criar uma continha ambiente virtual (impedir que diferentes versões do Python ou Python pacotes de pisar em outro). Há cada vez mais buzz de pessoas que se deslocam a esta ferramenta. O autor é o mesmo que o working-env.py mais velho mencionado por Aaron.

  2. pip para instalar pacotes dentro de um virtualenv. O tradicional é easy_install como respondida por S. Lott, mas pip funciona melhor com virtualenv. easy_install ainda tem características não encontradas em pip embora.

  3. scons como uma ferramenta de construção, embora você não vai precisar disso, se você ficar puramente Python .

  4. Tecido colar, ou paver para implantação.

  5. buildbot para integração contínua.

  6. Bazar, mercurial ou git para controle de versão.

  7. Nariz como uma extensão para testes de unidade.

  8. PyFit para testes FIT .

Outras dicas

Eu também trabalho com Java e Python. Para o desenvolvimento python o equivalente Maven é setuptools ( http://peak.telecommunity.com/DevCenter/setuptools). Para o desenvolvimento de aplicações de web que utilizar este, em combinação com empastamento ( http://pythonpaste.org/ ) para o processo de implantação

Além easy_install ?

Para os nossos servidores Linux, usamos easy_install e yum.

Para os nossos laptops de desenvolvimento do Windows, usamos easy_install e alguns MSI para alguns projetos.

A maioria das bibliotecas Python que usamos são de apenas fonte, para que possamos utilizar a mesma distribuição em todas as caixas. Se pudéssemos ter um dispositivo de rede compartilhada, nós colocá-los todos lá. Infelizmente, nossa infra-estrutura é uma espécie de dispersos, por isso temos de tanto movimento .TAR arquivos ao redor ou refazer as instalações para reconstruir os ambientes.

Em alguns casos (por exemplo, PIL), temos que recompilar e verificar os números de versão.

Você vai querer easy_setup para obter os ovos (mais ou menos o Maven chama um artefato).

Para configurar o seu ambiente, ter um olhar para working-env.py

Python não é compilado, mas você pode colocar todos os arquivos para um projeto em um ovo. Isto é feito com setuptools

Para CI, verifique esta resposta .

Nós seria negligente se não mencionar também Paver , que foi criado por Kevin Dangoor de TurboGears fama. O projeto ainda está em alpha, mas parece muito promissor. Um trecho da página do projeto:

Paver é uma compilação / distribuição / ferramenta de script de implantação baseada em Python ao longo das linhas de fabrico ou Rake. O que torna Paver único é a sua integração com bibliotecas Python comumente usados. As tarefas comuns que eram fáceis antes de permanecer fácil. Mais importante, lidar com suas aplicações necessidades e exigências específicas é agora muito mais fácil.

Eu faço exatamente isso com uma combinação de setuptools e Hudson. Eu sei Hudson é um aplicativo java, mas pode executar coisas Python muito bem.

Você pode querer verificar o nosso Devenv . Ele permite que você padronizar os ambientes de criação para o desenvolvimento, QA e UAT. É livre como em "cerveja grátis".

HTH

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top