Existe um equivalente Rake em Python?

87

Rake é uma ferramenta de construção de software escrita em Ruby (como Ant ou Make ) e, portanto, todos os seus arquivos são escritos nesta linguagem. Algo assim existe em Python?

e-satis
fonte
3
Você está procurando uma resolução de dependência geral e uma ferramenta de construção, como make, que pode construir projetos em qualquer linguagem? Ou algo para construir pacotes python especificamente?
Ian Clelland
1
Algo geral. Construir um pacote Python é interessante, mas pode ser executado com ferramentas gerais.
e-satis de
1
consulte também: stackoverflow.com/questions/542289/…
Ray
4
Alguém veio aqui do slide de Joe Armstrong? youtu.be/lKXe3HUG2l4?t=1270
nephewtom

Respostas:

37

Invoke - Fabric sem as dependências SSH.

O roteiro do Fabric discute que o Fabric 1.x será dividido em três partes:

  1. Invoke - A execução de tarefa não SSH.
  2. Fabric 2.x - A execução remota e biblioteca de implantação que utiliza Invoke .
  3. Patchwork - As "operações comuns de implantação / sysadmin, criadas no Fabric."

Invoke é uma biblioteca e ferramenta de execução de tarefas Python (2.6+ e 3.3+), inspirando-se em várias fontes para chegar a um conjunto de recursos poderoso e limpo.

Abaixo estão algumas declarações descritivas do site da Invoke :

  • Invoke é uma biblioteca e ferramenta de execução de tarefas Python (2.6+ e 3.3+), inspirando-se em várias fontes para chegar a um conjunto de recursos poderoso e limpo.
  • Como a ferramenta Rake do Ruby e o Fabric 1.x predecessor do Invoke, ele fornece uma API limpa de alto nível para executar comandos shell e definir / organizar funções de tarefas a partir de um arquivo tasks.py.
Matthew Rankin
fonte
1
@IgorZevaka agora funciona no windows, o mesmo tópico - github.com/pyinvoke/invoke/pull/119
Roman M. Koss
Foi usuário do Shovel há cerca de 4 anos. Definitivamente vá com Invoke agora. Interface de linha de comando muito legal, a declaração de tarefas é agradável e fácil, o encadeamento parece o do Make. Agradável.
ddotsenko
6

Waf é uma estrutura baseada em Python para configurar, compilar e instalar aplicativos. Deriva dos conceitos de outras ferramentas de construção, como Scons, Autotools, CMake ou Ant.

las3rjock
fonte
1
Quais são os benefícios dos outros scons Waf?
e-satis de
5

Embora seja mais comumente usado para implantação, o Fabric pode ser interessante para este caso de uso.

charlax
fonte
4

Também existe o doit - eu o encontrei enquanto procurava essas coisas há algum tempo, embora não tenha ido muito longe ao avaliá-lo.

Hamish Downer
fonte
0

Verifique também o buildout, que não é tanto um sistema de fabricação para software, mas sim um sistema de fabricação para uma implantação.

http://pypi.python.org/pypi/pysqlite/2.5.5

Portanto, não é um equivalente direto do rake, mas pode ser uma combinação melhor para o que você deseja fazer, ou realmente péssimo.

Lennart Regebro
fonte
1
Usar o buildout para isso é como usar um tanque para ir ao shopping, não é? Usar qualquer ferramenta Zope / Plone fora do Zope / Plone geralmente é, de qualquer maneira :-p
e-satis
"Por isso"? Ele não especificou para que ele queria usá-lo. De qualquer forma, buildout não é uma ferramenta Zope / Plone. Também não é grande nem complexo. É realmente cansativo que algumas pessoas rejeitem a ferramenta apenas porque ela foi escrita ou usada por desenvolvedores do Zope. Essa atitude é muito idiota.
Lennart Regebro
Qual é, isso foi apenas uma provocação. Eu costumava trabalhar para uma empresa apenas em Plone e sim, costumávamos fazer muitas piadas sobre as ferramentas que estávamos usando. Essa é uma atitude sensata, você não acha?
e-satis
0

Existe Phantom em Boo (que não é Python, mas quase).

Wernight
fonte
-2

Eu verificaria distutils:

O distutilspacote fornece suporte para construir e instalar módulos adicionais em uma instalação Python. Os novos módulos podem ser Python 100% puro, ou podem ser módulos de extensão escritos em C, ou podem ser coleções de pacotes Python que incluem módulos codificados em Python e C.

Andrew Hare
fonte
ele suporta coisas como geração de documentação ou execução de testes de unidade?
Wernight,