Ejecutar script python desde terminal sin extensión .py
14
Quiero llamar a un script de python script.py desde la terminal simplemente escribiendo script . es posible? ¿Si es así, cómo?
Sé que puedo evitar escribir python script.py agregando #! / Usr / bin / env python en la parte superior del script, pero aún tengo que agregar el sufijo .py para ejecutar el script.
El archivo está en ~ / workspace / python. Agregué ~ / workspace / python a mi ruta, ejecuté sudo chmod a + x script.py ", y agregué la línea shebang (#! / Usr / bin / env python) en la parte superior del script . puedo ejecutar el script escribiendo * script.py , pero sólo escribir guión no funciona.
jmau5
2
En unix / linux todo es un archivo y responde a su nombre de archivo. No puede llamar a Script.py como script. Intente cambiar el nombre del archivo de script.py a script y debería solucionar su problema.
Patrick
¡Lo siento, he entendido mal! Todo resuelto, gracias!
jmau5
5
La .pyextensión no es necesaria para ejecutar el script. Solo tiene que hacer que el script sea ejecutable (por ejemplo, ejecutando chmod a+x script) y agregar la línea shebang ( #!/usr/bin/env python).
Como opción, puede crear un contenedor para su script (un .pyarchivo):
Por ejemplo, tiene una secuencia de comandos runme.pypara que pueda crear un nuevo archivo runmepara ajustar la secuencia de comandos:
#!/usr/bin/env pythonimport runme
y luego llame a la runme.pyfuncionalidad simplemente invocando runmeen el shell.
Eso es útil para los scripts multiplataforma, ya que en la plataforma de Windows puede asignar .pyarchivos para que se invoquen solo por nombre sin extensión y shebang en el encabezado, pero en la plataforma de Linux no puede y, por lo tanto, sale el contenedor.
La
.py
extensión no es necesaria para ejecutar el script. Solo tiene que hacer que el script sea ejecutable (por ejemplo, ejecutandochmod a+x script
) y agregar la línea shebang (#!/usr/bin/env python
).fuente
Como opción, puede crear un contenedor para su script (un
.py
archivo):Por ejemplo, tiene una secuencia de comandos
runme.py
para que pueda crear un nuevo archivorunme
para ajustar la secuencia de comandos:y luego llame a la
runme.py
funcionalidad simplemente invocandorunme
en el shell.Eso es útil para los scripts multiplataforma, ya que en la plataforma de Windows puede asignar
.py
archivos para que se invoquen solo por nombre sin extensión y shebang en el encabezado, pero en la plataforma de Linux no puede y, por lo tanto, sale el contenedor.fuente