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 python
seguido 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=false
configuraçã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.