Executando scripts Python no linux

2

Estou tentando executar scripts Python com um shebang no Ubuntu. Quando eu crio um script python

    #! /usr/bin/env python
    import sys

... e executá-lo recebo um erro de shell:

    root@host:/home/user# ./test.py
    : No such file or directory

Como posso fazer isso funcionar?

Solução : remova '\ r's de finais de linha com dos2unix.

    
por Alex 22.05.2009 / 15:35

5 respostas

11

Eu assumo que o script é executável? Além disso, verifique se há retornos de carro - talvez as janelas tenham suas mãos sujas nele? Você pode verificar isso com 'cat -vE test.py' e procurar por '\ r'.

    
por 22.05.2009 / 15:55
4

Você provavelmente tem finais de linha do Windows no seu arquivo. Por favor, tente executar o dos2unix nele.

    
por 22.05.2009 / 16:37
1

Tente remover o espaço entre #! e / usr / bin / env, embora eu não entenda porque isso funcionaria quando não importando pacotes ...

    
por 22.05.2009 / 15:50
0

Tem certeza que o erro está acontecendo pelo motivo que você pensa? Ou você está (mais tarde no script) tentando abrir um arquivo? Comece com o caso mais simples para fazer as coisas funcionarem ...

hello.py:

#!/usr/bin/env python
print "Hello, world"

então ...

$ chmod +x hello.py
$ ./hello.py
Hello, world
$
    
por 22.05.2009 / 16:23
0

Use os liners abaixo para remover os novos caracteres de linha.

perl -e 's/\r//g' -w -p -i test.py

ou

sed -e "s/^M//" test.py > test_new.py

    
por 22.04.2014 / 10:09