2009-07-22 8 views
12

Estoy escribiendo una aplicación bastante básica en Python (en este momento es solo un archivo). Mi pregunta es ¿cómo la obtengo para que el script de Python pueda ejecutarse en/usr/bin sin la extensión .py?Guiones de Python en/usr/bin

Por ejemplo, en lugar de correr

python htswap.py args 

desde el directorio donde se encuentra actualmente, quiero ser capaz de cd en cualquier directorio y hacer

htswap args 

Gracias de antemano!

Respuesta

31

Simplemente quite la extensión .py cambiando el nombre del archivo. Entonces, usted tiene que poner la siguiente línea en la parte superior de su archivo:

#!/usr/bin/env python 

env es un pequeño programa que configura el entorno para que se ejecute la derecha python intérprete.

También tiene que hacer su archivo ejecutable, con el comando

chmod a+x htswap 

y volcado en /usr/local/bin. Esto es más limpio que /usr/bin, porque los contenidos de ese directorio generalmente son administrados por el sistema operativo.

+0

después de mucho dolor y experiencias cercanas a la muerte, sugiero usar la versión específica de python que desarrollas para #!/usr/bin/env python . (por ejemplo, python2.4) en su lugar. Es mejor tener el control de la versión de Python ejecutando el ejecutable (al menos para los casos que experimenté, YMMV) –

13

La primera línea del archivo debe ser

#!/usr/bin/env python 

Debe eliminar la extensión .py, y hacer que el archivo ejecutable, usando

chmod ugo+x htswap 

EDIT:Thomas puntos correctamente que tales las secuencias de comandos se deben colocar en /usr/local/bin en lugar de en /usr/bin. Por favor vote su respuesta (a expensas de la mía, tal vez. Siete votos favorables (mientras hablamos) para este tipo de cosas es ridículo)

+0

Sí, eso fue, lo hice antes y por alguna razón no funcionó, resulta que olvidé el! en el shebang –

2

Shebang?

#!/usr/bin/env python 

Deja que al principio de su archivo y listo

+2

Oh baby cuando se mueve ... – Alex

1

añadir #!/usr/bin/env python a la parte superior de htswap.py y cambiar el nombre htswap.pyhtswap a continuación, introduzca un comando: chmod +x htswap para hacer ejecutable htswap.

-1

que veo en los tutoriales de Python oficiales, http://docs.python.org/tutorial/index.html, que

#! /usr/bin/env python 

se utiliza al igual que las respuestas anteriores sugieren. Tenga en cuenta que también puede usar los siguientes

#!/usr/bin/python 

Este es el estilo que verá en los scripts de shell, como los scripts bash.Por ejemplo

#!/bin/bash 

Al ver que los tuts oficiales van con la primera opción que es probablemente la mejor opción. ¡Consistencia en el código es algo por lo que luchar!

+1

Como referencia, el primero es mejor porque es portátil. No todos los sistemas de archivos tienen la segunda opción. – JasTonAChair

Cuestiones relacionadas