Executando script python a partir do terminal sem extensão .py

11

Eu quero chamar um script python script.py do terminal simplesmente digitando script . Isso é possível? Se sim, como?

Eu sei que posso evitar digitar python script.py adicionando #! / usr / bin / env python no topo do script, mas eu ainda tenho que adicione o sufixo .py para executar o script.

    
por jmau5 28.12.2011 / 07:04

3 respostas

18

Os sistemas de arquivos Unix / Linux não dependem de extensões da mesma maneira que o Windows. Você não deve precisar do .py no final de um arquivo para executá-lo.

Você pode executar o arquivo chamando-o com o interpretador:

python ScriptFile

Ou marcando-o como executável e definindo o intérprete na primeira linha (por exemplo, #!/usr/bin/python ).

Se você não conseguir executar o arquivo com:

/Path/to/ScriptFile

verifique as permissões com

ls -l ScriptFile

Você pode precisar adicionar o sinalizador de executável e chmod para que ele seja executado para você.

Se você estiver usando scripts personalizados regularmente, convém garantir que o diretório que você os armazena seja adicionado à variável de ambiente PATH .

    
por 28.12.2011 / 07:27
5

A extensão .py é desnecessária para executar o script. Você só precisa tornar o script executável (por exemplo, executando chmod a+x script ) e adicionar a linha shebang ( #!/usr/bin/env python ).

    
por 28.12.2011 / 07:29
2

Como opção, você pode criar um wrapper para o seu script (um arquivo .py ):

Por exemplo, você tem um script runme.py para poder criar o novo arquivo runme para agrupar o script:

#!/usr/bin/env python
import runme

e, em seguida, chame a funcionalidade runme.py apenas invocando runme no shell.

Isso é útil para scripts multiplataforma, porque na plataforma Windows você pode atribuir .py arquivos para serem invocados apenas pelo nome sem extensão e shebang no cabeçalho, mas na plataforma linux você pode ' t e assim o envoltório sai.

    
por 02.04.2014 / 14:52