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?


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



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.

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.


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.


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.


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.


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


-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.


ele suporta coisas como geração de documentação ou execução de testes de unidade?
Wernight,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.