2011-05-28 15 views
6

Cuando desee ejecutar mis aplicaciones Python desde la línea de comandos (bajo Ubuntu) Tengo que estar en el directorio donde se encuentra el app.py código fuente y ejecutar la aplicación con el comando
Activar una aplicación o script en un comando shell

python app.py

¿Cómo puedo hacer que sea (¿cómo se hace convencionalmente) para ejecutar la aplicación desde el directorio arbitrario con el comando: app? Del mismo modo que escribe ls, mkdir y otros comandos?

agradecimiento

Respuesta

3

agregar el directorio que el script se encuentra en su camino a, que sea ejecutable, y añadir una línea adecuada tinglado.

En su .bashrc:

PATH=$PATH:/dir/to/the/script 

ejecutable:

chmod +x myscript.py 

En la parte superior de la secuencia de comandos, agregue la línea shebang:

#!/usr/bin/env python 

Entonces, desde cualquier lugar, puede solo hazlo:

myscript.py 

(Tenga en cuenta que no necesita un sufijo .py, podría llamarse cualquier cosa, p. app si tiene una línea de shebang adecuada).

8
  1. Añadir un shebang line al comienzo de su archivo:

    #!/usr/bin/env python 
    
  2. Haga su archivo ejecutable llamando

    chmod +x app.py 
    

    en la cáscara.

  3. Moverlo a alguna ubicación incluida en la variable de entorno PATH y cambiarle el nombre a app. Alternativamente, agregue la ruta del directorio que contiene app a la variable de entorno PATH añadiendo la línea

    export PATH=$PATH:/path/to/app 
    

    a su .bash_profile.

+0

Tuve que usar .bashrc en lugar de .bash_profile – xralf

+0

@xralf: realmente considero '.bashrc' el lugar equivocado para esto, ya que terminarás con una instancia múltiple de la ruta en la variable' PATH' (que funciona , pero parece inútil). No sé por qué '.bash_profile' no funciona para usted, tal vez se llame' .profile' en Ubuntu, o su shell de inicio de sesión no es 'bash' (improbable) o Ubuntu no ejecuta su shell de inicio de sesión en X de inicio de sesión. –

0

Estoy bastante seguro de lo que tiene que hacer el script ejecutable a través de chmod +x y ponerlo en la variable PATH del sistema.

2
  1. Añadir un tinglado: como la línea superior del archivo: #!/usr/bin/python o #!/usr/bin/python3 (se puede utilizar el python -B para evitar la generación de .pyc archivos, por lo que yo no uso /usr/bin/env)

  2. hacerlo ejecutable: Usted tendrá que hacer chmod +x app.py

  3. (opcional) Añadir direc de la ruta, puede llamarlo a cualquier lugar: Agregue un directorio con su ejecutable a su variable de entorno $PATH. La forma en que lo hace depende de su caparazón, pero es export PATH=$PATH:/home/you/some/path/to/myscripts (por ejemplo, distribuciones de Linux que usan bash) o setenv PATH $PATH:/home/you/some/path/to/myscripts (por ejemplo, tcsh, como en Mac OS X). Usted tendrá que poner esto, por ejemplo, en su .bashrc o cualquier script de inicio que tiene, o de lo contrario tendrá que repetir este paso cada vez que inicie sesión.

app.py tendrá que ser en el myscripts (o como lo nombre) carpeta. Ni siquiera necesita llamarlo app.py, pero puede cambiarle el nombre app.

Si desea omitir el paso 3, puede seguir haciendo ./app para ejecutarlo si se encuentra en el mismo directorio.

1

Probablemente usted quiere enlazar simbólicamente a la ubicación del archivo en lugar de añadir otra ubicación a la ruta

chmod +x app.py 
ln ~app.py /opt/local/bin/app 

... suponiendo que/opt/local/bin ya está en su camino ,.

Además, no se olvide de agregar la línea shebang a la primera línea del script: #!/usr/bin/env python

1

Una solución poco de lo diferente de los que se mencionan aquí: Utilice un alias.

alias app='python /path/to/app.py' 

Añadir la línea anterior a su ~/.bashrc~/.bash_login o archivo (o preferiblemente a ~/.bash_aliases si estás en Ubuntu). Luego, simplemente puede usar su secuencia de comandos como una herramienta de línea de comandos con app.

No es necesario agregar un shebang (modificando así su script de Python existente), no es necesario que el script sea ejecutable y no es necesario cambiar su PATH.

Cuestiones relacionadas