Invoca o script python por meio do comando make

2

Eu tenho uma ferramenta com 5 scripts python dizendo A.py , B.py , C.py , D.py e E.py . Eu tenho que executar este programa no Linux. A.py é o programa que eu executo, que importa outros arquivos e os usa. Para executar A.py, eu uso o comando

$ python A.py

Até agora, os caminhos de entrada e saída são codificados em A.py. Agora devo escrever um makefile com toda a estrutura e dependências do arquivo. Este makefile também deve incluir o comando para executar o python scrip A.py. Os caminhos de entrada e saída necessários devem ser entendidos quando o comando make makefile é chamado e a ferramenta deve começar a ser executada. Como fazer isso?

EDITADO:

O makefile deve ser algo como isso, mantendo todos esses detalhes.

INPUT_PATH = list of all input paths
FILES = list of .c files located in the above specified paths
OUTPUT_PATH = output path where generated file has to be stored
command to execute python scrip:
   A.py inputpath+filename outputpath

assim, sempre que houver novos arquivos de entrada .c, eles serão adicionados à lista no makefile. Qualquer amostra deste tipo que você possa sugerir?

    
por AnushaReddy 12.06.2015 / 08:26

2 respostas

3

Em python, você obtém os parâmetros de linha de comando de sys.argv so em vez de

#!/usr/bin/env python
base_dir = /hard/coded/path

você faz:

#!/usr/bin/env python
import sys
base_dir = sys.argv[1]

(colocar em cheques pode ser apropriado). Se você iniciar explicitamente o programa com python, você pode deixar de fora a primeira linha, mas não vai doer estar lá, caso você execute A.py executável, você precisará dele.

No seu makefile agora você pode especificar:

default:
        python A.py /hard/coded/path

(verifique se você tem uma aba antes de python , não 8 espaços.

E, em seguida, você pode executar make (não é necessário fazer make makefile , a menos que tenha um Makefile ou com o Gnu um GNUmakefile no mesmo diretório)

    
por 12.06.2015 / 08:35
2

Sugiro strongmente que você leia um tutorial básico do Makefile .

O que você quer basicamente é colocar seus caminhos em macros, que nessas instâncias funcionam de maneira semelhante às variáveis.

por exemplo DIR=/your/path .

Lembre-se de que as diretivas são assim:

directive:
        command

se a sua diretiva for denominada default ou all , ela será executada sem chamar explicitamente a diretiva da linha de comando. Então você não precisa invocar com make directive , apenas make .

Agora, o espaço na frente do comando deve ser um caractere de tabulação. Eu também aconselho nomear seu makefile Makefile (capital 'M'), então você pode invocá-lo, apenas digitando make .

agora, seu script deve ser capaz de receber um argumento de linha de comando (neste caso, os diretórios), e você invocaria algo como:

        python A.py $(DIR)

Com DIR sendo sua macro com o nome de diretório adequado.

Além disso, aconselho a ler os bits relevantes do manual do GNU Make

Existe, claro, um pouco mais para Makefiles do que o descrito neste escopo. Uma vez que os makefiles são uma parte integral do desenvolvimento no Linux, eu aconselho a se familiarizar com o básico, pelo menos!

    
por 12.06.2015 / 08:42

Tags