posso executar um script python no Ubuntu 12.04's a partir da interface gráfica

2

Estou tentando descobrir como selecionar e executar um arquivo python através do sistema Windows do Ubuntu. Eu nunca corri scripts na minha vida e sou muito novo nisso .. Então eu fui ao youtube porque eu senti que isso não deveria ter sido difícil, mas ...

Usando o script (e as instruções) descrito aqui: Crie, salve e execute o programa Python pelo terminal do Ubuntu

print"hello world"
vary = raw_input("Enter your Name")
print ("hey" + vary)

Eu tentei abrir o arquivo clicando duas vezes nele (de novo e de novo) ... e ele falhou, não pediu minha entrada, apenas abriu o terminal e sumiu (fechou o shell) e é tudo .. mas O IDLE foi capaz de executá-lo perfeitamente, então eu sei que não é o script. Quando eu usei o VIM para criá-lo como um arquivo e executá-lo a partir daí, obtive esta saída:

Traceback (most recent call last):
  File "shiite/livescript/rev.py", line 2, in <module>
    vary = input("Enter your Name Bitch:  ")
  File "<string>", line 1, in <module>
NameError: name 'Dave' is not defined

Mais uma coisa, eu também tentei selecionar as propriedades do arquivo com o botão direito e marquei a caixa que vamos executar .. ainda nada ..

Alguém sabe por que o terminal do Ubuntu não roda programas python ??? Talvez haja um terminal que execute algo assim ???

    
por The Dude 13.04.2013 / 22:03

4 respostas

4

No Windows, os tipos de arquivo são identificados pelos últimos 3 caracteres após o. No entanto, no linux (e no Ubuntu) o .py apenas nos ajuda a descobrir o tipo de arquivo que é. Você tem que dizer ao Ubuntu que o script que você escreveu é um script python e deve ser executado com um interpretador python. Você pode fazer isso de duas maneiras:

Primeiro , você pode chamar python seguido do nome do script. Isso é abrir um terminal e digitar:

python hellowworld.py

Isso funcionará.

Segundo, no entanto, você deseja usar a GUI e executá-la clicando duas vezes. Para isso você precisa de uma linha no script que diga ao Ubuntu que as próximas linhas devem ser interpretadas como um script python. Esta primeira linha é chamada de linha shabang . Para python, parece:

#! /usr/bin/python

Observe o #! no começo. Os dois primeiros caracteres do seu script devem ser os dois seguidos pelo resto da linha. Então, o seu script será parecido com:

#! /usr/bin/python

print"hello world"
vary = raw_input("Enter your Name")
print ("hey " + vary)

Como você observou, o script deve ser marcado como executável. Para fazer isso, clique com o botão direito do mouse no ícone do script e vá para Propriedades > Permissões e marque Permitir a execução do arquivo como programa .

Agora, quando você clica duas vezes no script, ele mostra uma janela com as opções:

Run in terminal , Display , Cancel , Run

Você pode tentar Run in terminal . Ele abrirá um terminal e mostrará o prompt:

Enter your name

Quando você digitar seu nome, o terminal será fechado quando o script for concluído. Então você nunca verá "ei [seu nome]", pois acontecerá rápido demais para os seus olhos capturá-lo. Você terá que modificar o script para que ele faça uma pausa e espere que você o dispense depois de ver a exibição.

Espero que isso ajude

    
por user68186 13.04.2013 / 22:54
2

Para recriar seu problema, primeiro verifiquei se o Python estava instalado no meu sistema.

xaap001@ubuntu:~$ which python
/usr/bin/python
xaap001@ubuntu:~$ python
Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Eu peguei o código Python "hello world" que você postou acima e salvei em um arquivo chamado helloWorld.py . Eu não alterei as permissões neste arquivo depois de salvá-lo. Do terminal, tentei o seguinte:

xaap001@ubuntu:~$ python helloWorld.py
hello world
Enter your NameAaron
heyAaron

Parece que funcionou. Do terminal, você só precisa começar todos os scripts Python com python .

Edit: Eu decidi tentar fazer isso funcionar na área de trabalho, criando um atalho na área de trabalho, conforme descrito nesta pergunta / resposta: atalho da área de trabalho para criar um novo atalho no desktop não faz nada

Eu configurei o "comando" para: python /home/xaap001/helloWorld.py

Isso me deu um ícone na área de trabalho que eu poderia clicar. E isso não fez nada. Eu verifiquei o conteúdo real do arquivo .desktop (atalho):

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=python
Name[en_US]=Python helloWorld
Exec=python /home/xaap001/helloWorld.py
Name=helloWorldPy
Icon=python

Eu observei a configuração Terminal=false e alterei para Terminal=true . Clicando duas vezes no ícone funcionou.

    
por Aaron 13.04.2013 / 22:24
0

você pode acreditar nisso? Eu tenho que admitir, eu acho que meu Ubuntu tem um vírus ou algo assim .. mas sim, eu fiz isso e isso:

lucky1 @ babyCatsDesktop: ~ / xite / vidascript $ python rev.py

Olá, trabalho

Digite seu nome Por favor: Dave

Traceback (última chamada mais recente):

Arquivo "rev.py", linha 2, em

vary = input("Enter your Name Please:  ")

Arquivo "", linha 1, em

NameError: o nome 'Dave' não está definido

lucky1 @ babyCatsDesktop: ~ / xite / vidascript $

Ainda funciona perfeitamente no terminal python? Eu não sou bom nessas coisas e pareço encontrar os problemas mais singulares e comuns por aí ...

    
por The Dude 13.04.2013 / 22:48
0

No Python 2 (que você provavelmente está usando) input() e raw_input() não são os mesmos. Seu script usa input() , ao contrário do exemplo.

input() recebe sua entrada e tenta avaliá-la. Como não existe um objeto chamado "Dave" no seu namespace, o Python não sabe o que fazer. No entanto, raw_input() converte sua entrada em uma string, isso deve ser usado em quase todos os casos.

Observação : no Python 3, raw_input() foi renomeado para input() .

Você acha que nada acontece porque um erro é acionado e o script é encerrado. Esta é também a razão pela qual você deve sempre executar scripts a partir do terminal, para que possa ver mensagens de erro ou informações gerais de depuração que são impressas.

Portanto, altere seu script para usar raw_input() e execute-o a partir do terminal até soltar todos os bugs e, em seguida, clique duas vezes nele.

    
por Timo 13.04.2013 / 23:12