¿Cómo hacer que un ejecutable .py esté disponible en todas partes en OS X?

4

Tengo este directorio / foo / bar / . En el interior, tengo un archivo python llamado myfile.py . Lo hice ejecutable agregando (en la parte superior):

#!/usr/bin/env python

Luego, lo hice ejecutable mediante la emisión

chmod +x myfile.py

Edité mi ruta de acceso emitiendo

sudo nano /etc/paths

Agregué / foo / bar / a él.

El problema es que aunque puedo ejecutar myfile.py escribiendo ./myfile.py mientras estoy dentro de / foo / bar / , no funciona desde cualquier otro lugar. ¿Qué estoy haciendo mal?

Gracias.

    
pregunta ilovebigmacs 18.06.2013 - 15:25

2 respuestas

1

Debe agregar /foo/bar a su variable de entorno $PATH . Navegue a su directorio de inicio escribiendo cd en el indicador, luego escriba nano .profile . Dentro de este archivo, agregue la siguiente línea:

export PATH=$PATH:/foo/bar

a continuación, guardar y salir. Salga de Terminal.app (o del programa de término que esté usando) y reinícielo. /foo/bar ahora debería estar en su ruta de búsqueda, para asegurarse de que escriba echo $PATH y vea si está al final. Ahora deberías poder ejecutar myfile.py desde cualquier lugar.

    
respondido por el MattDMo 18.06.2013 - 15:34
0

En su tipo de terminal:

which python

asegúrate de que esta ruta en el shebang en la primera línea de tu archivo .py. En mi sistema está

#!/usr/local/bin/python

luego 1er intento:

export PATH=$PATH:/path/to/where/your/script/is

en cualquier terminal

compruebe que el PATH realmente se atascó al verificar:

$PATH

debería tener una ruta de acceso a tu script allí ahora.

ahora deberías poder iniciar tu formulario de script en cualquier lugar.

la RUTA se reiniciará una vez que cierre la terminal, por lo que debería recibir su pago y agregarla permanentemente a su RUTA.

una buena solución es tener el siguiente bit de código en tu .bash_profile:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

ver escritura por ejemplo enlace esto asegurará que .bashrc se cargue cada vez que se inicie el terminal, así como cuando lanzar una subshell. Poner la exportación

export PATH=$PATH:/path/to/where/your/script/is

línea en algún lugar en su archivo .bashrc. salga y reinicie el terminal. Eso debería arreglarlo todo

    
respondido por el Joop 20.06.2013 - 17:24

Lea otras preguntas en las etiquetas