Não é possível executar o programa python no terminal

-1

(estou usando o Ubuntu 12.04)

Eu fiz este programa em python:

#!/bin/sh
# -*- coding: utf-8 -*-

#Created on Tue Nov 12 19:44:50 2013

#@author: matthew

import os

print "Multiple Command Runner"
print "<Made by Matthew Cherrey>"
print "-------------------------"
numbcommand = 0
allcoms = []
while 1:
    numbcommand = numbcommand + 1
    command = raw_input(" Command: ")
    allcoms.append(command)
    decide = raw_input("Press [Enter] to and another command, press [r] to run all commands: ")
    if decide == "r":
        break

commands = ""
first = True
for item in allcoms:
    if first:
        commands = item
    else:
        commands = commands + " && " + item
os.system(commands)

E eu quero ser capaz de executá-lo no terminal. Eu uso o editor python: Spyder Isto tem uma opção para "Executar no terminal do sistema". Sempre que faço isso, meu programa funciona perfeitamente. Eu posso inserir vários comandos e executá-los todos. Quando eu configuro o arquivo para um exicutible e executo /home/matthew/.runallcommands.py --python ou /home/matthew/.runallcommands.py , primeiro faço meu cursor em um "t" que então quando clico em algum lugar, é tirar uma foto dessa área da tela e salvá-la como uma foto chamado "OS" na minha pasta pessoal. então eu recebo esta mensagem de erro:

matthew@matthew-MS-7721:~$ /home/matthew/.runallcommands.py --python
Warning: unknown mime-type for "Multiple Command Runner" -- using "application/octet-stream"
Error: no such file "Multiple Command Runner"
Warning: unknown mime-type for "<Made by Matthew Cherrey>" -- using "application/octet-stream"
Error: no such file "<Made by Matthew Cherrey>"
/home/matthew/.runallcommands.py: 13: /home/matthew/.runallcommands.py: numbcommand: not found
/home/matthew/.runallcommands.py: 14: /home/matthew/.runallcommands.py: allcoms: not found
/home/matthew/.runallcommands.py: 17: /home/matthew/.runallcommands.py: Syntax error: "(" unexpected (expecting "do")

Não tenho certeza se tem algo a ver com como eu chamei o arquivo, porque meu programa funcionou 100% bem no terminal em spyder.

    
por Nightshaxx 13.11.2013 / 15:13

1 resposta

3

Seus comandos python estão sendo interpretados como comandos shell, por exemplo print "Multiple Command Runner" está procurando por um arquivo desse nome para imprimir (com um tipo MIME associado).

Até onde eu sei, adicionar um parâmetro de linha de comando --python a um script de shell não faz com que ele seja interpretado como um script python - para fazer isso, você deve alterar o #!/bin/sh 'shebang' para um apropriado python shebang por exemplo

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#Created on Tue Nov 12 19:44:50 2013

#@author: matthew

import os
.
.
.

Você poderá então executá-lo tornando o arquivo executável

chmod +x /path/to/yourfile.py

e executá-lo como

/path/to/yourfile.py

Se yourfile.py estiver no diretório atual, você poderá usar o caminho relativo ./yourfile.py para executá-lo.

    
por steeldriver 13.11.2013 / 15:41