Estoy tratando de descubrir cómo seleccionar y ejecutar un archivo Python a través del sistema Ubuntu Windows. Nunca he ejecutado scripts en mi vida y soy muy nuevo en esto. Así que fui a YouTube porque sentí que esto no debería haber sido difícil, pero...
Usando el script (y las instrucciones) que se describen aquí: Cree, guarde y ejecute un programa Python a través de la terminal de Ubuntu
print"hello world"
vary = raw_input("Enter your Name")
print ("hey" + vary)
Intenté abrir el archivo haciendo doble clic en él (una y otra vez)... y falló, no me pidió información, simplemente abrí la terminal y desapareció (cerré el shell) y eso es todo... pero IDLE pudo ejecutarlo perfectamente para saber que no es el script. Cuando usé VIM para crearlo como un archivo y ejecutarlo desde allí, obtuve este resultado:
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
Una cosa más, también intenté seleccionar las propiedades del archivo con clic derecho y marqué la casilla que permite ejecutarlo... todavía nada...
¿Alguien sabe por qué la terminal de Ubuntu no ejecuta programas de Python? ¿Quizás haya una terminal que ejecute algo como esto?
Respuesta1
En Windows, los tipos de archivos se identifican por los últimos 3 caracteres después del . Sin embargo, en Linux (y en Ubuntu), .py simplemente nos ayuda a los humanos a descubrir qué tipo de archivo es. Tienes que decirle a Ubuntu que el script que escribiste es un script de Python y debe ejecutarse con un intérprete de Python. Puede hacer esto de dos maneras:
Primeropuedes llamar python
seguido del nombre del script. Eso es abrir una terminal y escribir:
python hellowworld.py
Esto funcionará.
Segundo,sin embargo, desea utilizar la GUI y ejecutarla haciendo doble clic. Para esto necesita una línea en el script que le indique a Ubuntu que las siguientes líneas deben interpretarse como un script de Python. Esta primera línea se llamashabanglínea. Para Python se ve así:
#! /usr/bin/python
Tenga en cuenta el #!
al principio. Los primeros dos caracteres de su guión deben ser esos dos seguidos del resto de la línea. Entonces tu script se verá así:
#! /usr/bin/python
print"hello world"
vary = raw_input("Enter your Name")
print ("hey " + vary)
Como notó, el script debe estar etiquetado como ejecutable. Para hacer eso, haga clic derecho en el ícono del script y vaya aPropiedades>Permisosy comprobarPermitir ejecutar archivo como programa.
Ahora, cuando haga doble clic en el script, le mostrará una ventana con las opciones:
Run in terminal
, Display
, Cancel
,Run
Puedes probar Run in terminal
. Abrirá una terminal y le mostrará el mensaje:
Enter your name
Cuando ingrese su nombre, la terminal se cerrará cuando se complete el script. Por lo tanto, nunca verás "oye [tu nombre]", ya que sucederá demasiado rápido para que tus ojos lo capten. Tendrá que modificar el script para que se detenga y espere a que lo descarte después de ver la pantalla.
Espero que esto ayude
Respuesta2
Para recrear su problema, primero verifiqué que tenía Python instalado en mi 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()
Luego tomé el código Python "hola mundo" que publicaste arriba y lo guardé en un archivo llamado helloWorld.py
. No modifiqué los permisos de este archivo después de guardarlo. Desde la terminal, probé lo siguiente:
xaap001@ubuntu:~$ python helloWorld.py
hello world
Enter your NameAaron
heyAaron
Parece que funcionó. Desde la terminal, solo necesita anteponer todos los scripts de Python con python
.
Editar: decidí intentar que esto funcione desde el escritorio, creando un acceso directo en el escritorio como se describe en esta pregunta/respuesta:El acceso directo en el escritorio para crear un nuevo acceso directo en el escritorio no hace nada
Configuré el "comando" en:python /home/xaap001/helloWorld.py
Eso me dio un ícono en el escritorio en el que podía hacer clic. Y no hizo nada. Verifiqué el contenido real del archivo .desktop (acceso directo):
[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
Noté la Terminal=false
configuración y la cambié a Terminal=true
. Luego, hacer doble clic en el icono funcionó.
Respuesta3
¿Puedes creer eso? Tengo que admitirlo, creo que mi ubuntu tiene algún virus o algo así.. pero si, hice eso y esto:
lucky1@babyCatsDesktop:~/shiite/livescript$ python rev.py
Hola Mundo
Ingrese su nombre por favor: Dave
Rastreo (llamadas recientes más última):
Archivo "rev.py", línea 2, en
vary = input("Enter your Name Please: ")
Archivo "", línea 1, en
NameError: el nombre 'Dave' no está definido
lucky1@babyCatsDesktop:~/shiite/livescript$
¿Sin embargo, funciona perfectamente en la terminal Python? No soy bueno en estas cosas y parece que encuentro los problemas más singulares, aunque comunes, que existen.
Respuesta4
En Python 2 (que probablemente estés usando) input()
y raw_input()
no son lo mismo. Su script usa input()
, a diferencia del ejemplo.
input()
toma sus comentarios y trata de evaluarlos. Como no hay ningún objeto llamado "Dave" en su espacio de nombres, Python no sabe qué hacer. raw_input()
sin embargo, convierte su entrada en una cadena; esto debería usarse en casi todos los casos.
Nota: En Python 3, raw_input()
se le cambió el nombre a input()
.
Crees que no pasa nada porque se produce un error y el script finaliza. Esta es también la razón por la que siempre debes ejecutar scripts desde la terminal, para que puedas ver los mensajes de error o la información general de depuración impresa.
Entonces, cambie su script para usarlo raw_input()
y ejecútelo desde la terminal hasta que elimine todos los errores, luego intente hacer doble clic en él.