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

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

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

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

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

Tentei abrir o arquivo clicando duas vezes nele (de novo e de novo)... e falhou, não pedia minha entrada, apenas abri o terminal e desapareceu (fechei o shell) e isso é tudo.. mas o IDLE conseguiu para executá-lo perfeitamente, então eu sei que não é o script. Quando 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, também tentei selecionar as propriedades do arquivo com o botão direito e marquei a caixa que permite executar .. ainda nada ..

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

Responder1

No Windows, os tipos de arquivo são identificados pelos últimos 3 caracteres após a extensão . No entanto, no Linux (e no Ubuntu) .py apenas nos ajuda, humanos, a descobrir que tipo de arquivo é. 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:

Primeirovocê pode ligar pythonseguido do nome do script. Isso é abrir um terminal e digitar:

python hellowworld.py

Isso funcionará.

Segundo,entretanto, 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 deshabanglinha. Para python é assim:

#! /usr/bin/python

Observe o #!no início. Os dois primeiros caracteres do seu script devem ser aqueles seguidos pelo resto da linha. Então seu script ficará assim:

#! /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 no ícone do script e vá paraPropriedades>Permissõese verifiquePermitir execução de arquivo como programa.

Agora, quando você clicar duas vezes no script, será exibida uma janela com as opções:

Run in terminal, Display, Cancel,Run

Podes tentar Run in terminal. Ele abrirá um terminal e mostrará o prompt:

Enter your name

Ao inserir seu nome, o terminal será fechado conforme o script for concluído. Portanto, você nunca verá "ei, [seu nome]", pois acontecerá rápido demais para que seus olhos captem. Você terá que modificar o script para que ele faça uma pausa e espere que você o descarte depois de ver a exibição.

Espero que isto ajude

Responder2

Para recriar seu problema, primeiro verifiquei se tinha o Python instalado em 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()

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

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

Parece que funcionou. No terminal, você só precisa prefaciar todos os scripts Python com python.

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

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

Isso me deu um ícone na área de trabalho no qual eu poderia clicar. E não fez nada. 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

Notei a Terminal=falseconfiguração e mudei para Terminal=true. Em seguida, clicar duas vezes no ícone funcionou.

Responder3

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

lucky1@babyCatsDesktop:~/shiite/livescript$ python rev.py

Olá Mundo

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:~/shiite/livescript$

No entanto, funciona perfeitamente no terminal python? Não sou bom nessas coisas e pareço encontrar os problemas mais exclusivos, mas comuns, por aí.

Responder4

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

input()recebe sua opinião e tenta avaliá-la. Como não existe nenhum objeto chamado “Dave” em seu namespace, o Python não sabe o que fazer. raw_input()no entanto, 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 é gerado 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 impressas.

Portanto, altere seu script para usar raw_input()e execute-o no terminal até eliminar todos os bugs e tente clicar duas vezes nele.

informação relacionada