Ejecutando Python File en Terminal

47

Tratando de aprender cómo ejecutar mis scripts a través del terminal de Ubuntu regularmente. Dicho esto, estoy familiarizado con bash, wgety me awkllaman, pero ¿cómo llamo a los archivos de Python para que se ejecuten en el terminal? Me gustaría aprender esto, pero no estoy seguro de dónde investigarlo. Tengo un .pywarchivo que hace referencia a varios .pyarchivos en una carpeta.

DᴀʀᴛʜVᴀᴅᴇʀ
fuente
Caso diferencial en lo siguiente porque el título original es demasiado general, incluido - acerca de ejecutar el script de Python en la terminal para llamar a una función stackoverflow.com/q/25837063/54964
Léo Léopold Hertz 준영

Respuestas:

81

Opción 1: llamar al intérprete

  • Para Python 2: python <filename>.py
  • Para Python 3: python3 <filename>.py

Opción 2: dejar que el guión llame al intérprete

  1. Asegúrese de que la primera línea de su archivo tenga #!/usr/bin/env python.
  2. Hazlo ejecutable - chmod +x <filename>.py.
  3. Y ejecutarlo como ./<filename>.py
abhshkdz
fuente
¿Cuál es la razón por la que cuando quiero ejecutar mi .py solo funciona con la opción de método 1 y la segunda da un error de sintaxis?
Krsztr
¿Qué pasa si quieres abrir un nuevo archivo de Python?
asmgx
8

Simplemente prefija el nombre de archivo del script con python. P.ej:

python filename.py
Winston Ewert
fuente
5

También vale la pena mencionar que al agregar una -ibandera después python, puede mantener su sesión ejecutándose para una mayor codificación. Me gusta esto:

python -i <file_name.py>
keyan3d
fuente
3
python <filename.py>

pyw debería ejecutarse de la misma manera, creo. También puede iniciar una consola interactiva con solo

python

Además, puede evitar tener que invocar Python explícitamente agregando un shebang en la parte superior del script:

#!/usr/bin/env python

... o cualquier cantidad de variaciones de los mismos

IlluminAce
fuente
2

Primera ejecución siguiendo el comando

chmod +x <filename>.py

Luego, en la parte superior del script, agregue #!y la ruta del intérprete de Python:

#!/usr/bin/python

Si desea que el script sea independiente del lugar donde vive el intérprete de Python, puede usar el envprograma. Casi todas las variantes de Unix admiten lo siguiente, suponiendo que el intérprete de Python esté en un directorio en el usuario $PATH:

#! /usr/bin/env python
Shanaka
fuente
0

Cambie los directorios utilizando cdel directorio que contiene el .py y ejecute uno de los dos comandos siguientes:

python <filename>.py  # for Python 2.x  
python3 <filename>.py # for Python 3.x 

Alternativamente, ejecute uno de los siguientes dos comandos:

python /path/to/<filename>.py  # for Python 2.x  
python3 /path/to/<filename>.py # for Python 3.x 
karel
fuente
-2

Intenta usar el comando en python3lugar de python. Si el script fue escrito en Python3 e intenta ejecutarlo con Python2, podría tener problemas. Ubuntu tiene ambos; cambiar el nombre del programa a python3(en lugar de reemplazarlo python) lo hizo posible. Ubuntu necesita v2.7 (a partir del 16/02/2017), así que NO elimine ni elimine Python2, sino que conserve ambos. Acostúmbrate a usar Python3 para ejecutar scripts, que pueden ejecutarse.

Tony
fuente
1
-1 Python 3 no puede ejecutar scripts de Python 2 (con algunas excepciones).
wjandrea
Mi mal, tienes razón. Probablemente por eso Ubuntu todavía usa Python 2. Lo siento wjandrea, gracias por corregirme.
Tony