2011-01-17 10 views
7

Estoy en Mac OS 10.6 Snow Leopard y estoy tratando de agregar un directorio a mi variable PATH para poder ejecutar un pequeño script que escribí simplemente escribiendo: python alarm.py en el indicador de la terminal.¿Cómo puedo ejecutar mi secuencia de comandos python desde la terminal en Mac OS X sin tener que escribir la ruta completa?

Pongo la ruta en mi archivo .profile y parece aparecer cuando echo $ PATH, pero python todavía no puede encontrar el script que he puesto en ese directorio.

Aquí es el contenido de mi archivo .profile en mi directorio home:

~ toby$ vim .profile 
export PATH=/Users/tobylieven/Documents/my_scripts:$PATH 

Aquí está la salida de echo $ PATH, donde todo parece estar bien:

~ toby$ echo $PATH 
/Users/tobylieven/Documents/my_scripts:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Aquí es el guión que estoy tratando de ejecutar:

~ toby$ ls /Users/tobylieven/Documents/my_scripts 
[email protected] 1 tobylieven staff 276 17 Jan 21:17 alarm.py 

Aquí está el comando que estoy tratando de usar para ejecutar el script y el mensaje de error soy obteniendo en su lugar:

~ toby$ python alarm.py 
python: can't open file 'alarm.py': [Errno 2] No such file or directory 

Si alguien tiene una idea de lo que podría estar haciendo mal, sería genial. Muchas gracias.

Respuesta

15

camino es sólo para ejecutables, no para los scripts de Python. Añadir lo siguiente al comienzo de la secuencia de comandos de Python:

#!/usr/bin/env python 

y ejecutar

sudo chmod a+x /Users/tobylieven/Documents/my_scripts/alarm.py 

A continuación, puede escribir simplemente alarm.py para ejecutar su programa.

+1

¡Impresionante! Funciona :). Muchas gracias: D. Para que la gente sepa, escribe '#' en un macbook pro presionando alt + 3. – tobuslieven

3

Debe modificar la variable de ruta específica de Python: PYTHONPATH.

Así:

export PYTHONPATH=/Users/tobylieven/Documents/my_scripts 

debe ponerlas a trabajar.

Ver: Python Module Search path

4

cambio alarm.py para incluir:

#!/bin/python 

como la primera línea en el archivo.

(. O/usr/bin/python, dependiendo de dónde se encuentra usted intérprete de Python Puede resolver esto escribiendo: which python en el terminal.)

continuación, puede simplemente ejecutar alarm.py en lugar de python alarm.py.

ej .:

~ toby$ alarm.py 

Y phihag que me golpeaban por unos segundos es correcto, es necesario agregar permisos de ejecución (a través de chmod) para alarm.py.

0

Algo de interés con el que realmente luché en OS X viniendo de Window, es que es muy difícil obtener el directorio de su script actual.

Encontré esto.

#! /bin/zsh 
cd "${0:h}" 

Ahora se podría ejecutar un archivo de Python en relación con la secuencia de comandos ejecutados en lugar de tener que conocer la ruta exacta donde su archivo de Python es. Esto podría ayudar o no, pero lo uso mucho para que mis scripts y archivos .command funcionen mejor.

Cuestiones relacionadas