Maven equivalente para python [fechado]

146

Sou desenvolvedor java / iniciante em python e sinto falta dos meus recursos importantes, principalmente gerenciamento de dependências e automação de compilação (quero dizer, você não constrói, mas como criar um pacote para implantação?)

Existe um python equivalente para alcançar esses recursos?
Nota: Eu uso o python 2.x

Obrigado.

Enno Shioji
fonte

Respostas:

70

O Python usa distutils e setuptools para dependência e empacotamento.

Aqui está um tutorial que explica o básico: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

Em resumo, você terá o arquivo setup.py, que possui informações de compilação / instalação de dependência e script, e poderá criar ovos, tarballs dist, tarballs binários etc. com ele.

Daniel Kluev
fonte
6
Desde que o caríssimo Mark Pilgrim, que partiu do setor elétrico, fechou o site, aqui está um espelho no estado ativo .
Jiggy #
2
Eu recomendo atualizá-lo para apontar para o Guia do Usuário de Empacotamento Python, pois é o guia oficial agora.
Kojiro # 24/16
38

Não há correspondência direta. No entanto, o mais próximo que você pode chegar:

  • zc.buildout : Ele pode configurar ambientes fechados, baixar / manipular dependências, inicializar scripts etc. Ele também se baseia em plugins (ou "receitas", como eles chamam). Eu o usei alguns anos atrás, quando estava em fase beta, provavelmente evoluiu desde então. Há uma curva de aprendizado, como no Maven, mas também é a mais poderosa.

Outras ofertas são subconjuntos do Maven / zc.buildout:

Você provavelmente conhece os scripts Ant e shell, para poder verificar também estas ferramentas Python:

  • Fabric ou Paver : corredores de tarefas da linha de comando com sabores adicionados. Eles agrupam sua execução tradicional da linha de comando em python e permitem gerenciar várias tarefas de uma maneira mais poderosa (dependências de tarefas, interpretar resultados, executar comandos no servidor remoto, etc.). Basicamente, nada que você não pudesse fazer com scripts de shell, mas em python, é muito menos enigmático.
Tuukka Mustonen
fonte
14

Gostaria de destacar o PyBuilder, que é fortemente inspirado pelo maven, mas usa python em vez de XML para configuração, por isso é realmente legível, IMHO.

Existe um plug-in para gerenciamento de dependências (usa pip sob o capô e diferencia as dependências de compilação e tempo de execução) e, não muito diferente do maven, você pode executar o ciclo de vida completo da compilação com um único comando.

user245678
fonte
9

Para implantação, além de distutils / setuptoos, também dê uma olhada no pacote pip (usa setuptools embaixo). Ele pode reverter as instalações com falha e também desinstalar (algo ausente do easy_install / setuptools). Além disso, você pode especificar dependências através de um arquivo de texto de requisitos.

ars
fonte
6

É bom usar o virtualenv para criar um ambiente de projeto independente e usar pip / easy_install para gerenciar dependências.

Ning Sun
fonte
7
Isso é triste
:)