Executando o script python na máquina ubuntu usando ./myscript.py

3

Estou executando um script python chamado myscript.py na máquina ubuntu. Eu costumo usar o comando python para executar scripts python como abaixo.

python main.py

Recentemente, eu baixei um script python de um repositório do Github (se precisar olhar para o repositório pode encontrá-lo em link ) que pede para executar o script usando './' como abaixo.

./main.py

A execução de scripts python em segundo lugar é nova para mim. Estou confuso sobre quando podemos usar './' para executar scripts e esse método também é usado para executar scripts usados para outros idiomas. Normalmente, eu esperaria o nome do binário, como python, que iniciará um processo antes de adicionar o nome do script. Este script será alimentado para o processo. Além disso, quero entender qual é o significado de './' quando executamos scripts. Eu sinto que esta é uma questão trivial, mas não consegui encontrar muita ajuda online.

Eu também tentei executar um dos arquivos executáveis do meu python e depois executei-o. No entanto, executá-lo usando ./ me deu erros para qualquer comando de importação de biblioteca python.

    
por GAURAV SRIVASTAVA 28.04.2018 / 22:06

1 resposta

1

./ é simplesmente um caminho relativo indicando o diretório de trabalho atual. Ao executar um arquivo que não está no seu PATH , é necessário prefixá-lo com o caminho completo ou um caminho relativo, ./ é o método mais simples de fazer isso, mas também funcionaria se você usasse um caminho completo como /path/to/script.py

A razão pela qual seu script python recebe erros quando você o executa como:

./script.py

em vez de:

python script.py

é porque você não tem uma linha de intérprete hashbang (shebang) na parte superior informando qual interpretador usar ao executar o script. É provável que tente executá-lo com bash ou qualquer shell que você esteja usando para executar o script. (Veja Qual interpretador de shell executa um script sem shebang? )

Para que seu script seja executado corretamente usando python, adicione o seguinte à primeira linha do script:

#!/usr/bin/env python
    
por 28.04.2018 / 22:24