Como posso executar meu programa python diretamente do shell?

9

Eu escrevi um script. Quando começa, não pára e continua recebendo dados da Internet. Eu posso chamar assim:

cd /User/Desktop/project/internetScanner/
python3 main.py start

Mas eu gostaria de chamá-lo diretamente do terminal assim, dentro do destino:

internetScanner start

Como posso fazer isso?

    
por Ted Wong 30.12.2011 / 17:31

3 respostas

27

Você provavelmente deve renomear seu arquivo main.py para internetScanner . Extensões no * nix são puramente opcionais. Não importa aqui.

mv main.py internetScanner

Em seguida, adicione a seguinte linha a este arquivo, logo no começo:

#!/usr/bin/env python3

Isso garantirá que quando o shell executar o arquivo, ele saberá usar python3 para interpretar o conteúdo. Isso é conhecido como o Shebang . Agora, torne o arquivo executável:

chmod +x internetScanner

Agora você pode executar seu programa a partir de /User/Desktop/project/internetScanner/ :

./internetScanner start

Seu programa será executado em primeiro plano e continuará em execução até que você pressione Ctrl - C . Se você não quiser isso, você também pode iniciar o programa em segundo plano, adicionando um e comercial após o comando:

./internetScanner start &

Isso permitirá que seu programa seja executado, mas você pode continuar usando seu shell. Isso é chamado de controle de trabalho, e há um tutorial simples sobre isso aqui .

Se agora você quiser executar o programa de qualquer lugar no sistema, será necessário adicionar o diretório internetScanner ao seu PATH : O que são PATH e outras variáveis de ambiente, e como posso configurá-las ou usá-las?

    
por 30.12.2011 / 17:35
2

Supondo que nenhum outro arquivo em /User/Desktop/project/internetScanner/ seja necessário, se você deseja instalar para um único usuário, vincule ( ln -s ) main.py a $HOME/bin/internetScanner . Você provavelmente precisará do mkdir $HOME/bin primeiro.

Na próxima vez que você fizer login, $HOME/bin provavelmente será adicionado ao seu PATH. Se você quiser que ele esteja disponível para todos os usuários, copie-o para /usr/local/bin .

Se ele precisar ser executado em /User/Desktop/project/internetScanner/ , comece importando os e chamando

os.chdir('/User/Desktop/project/internetScanner/') 

ou crie um script de ativação em $HOME/bin ou /usr/local/bin que mude para /User/Desktop/project/internetScanner/ e execute o script.

    
por 10.01.2012 / 06:41
0

Coloque alias internetScanner "python /User/Desktop/project/internetScanner/main.py" no arquivo .aliases (para csh). Para bash, coloque alias internetScanner="python /User/Desktop/project/internetScanner/main.py" em .bashrc. Depois disso, você pode usar o InternetScanner a partir de qualquer lugar.

    
por 10.11.2012 / 02:39