5 votos

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

Tengo este directorio /foo/bar/ . Dentro, tengo un archivo Python llamado miarchivo.py . Lo he hecho ejecutable añadiendo (en la parte superior):

#!/usr/bin/env python

Luego, lo hice ejecutable emitiendo

chmod +x myfile.py

He editado mi ruta emitiendo

sudo nano /etc/paths

He añadido /foo/bar/ a ella.

El problema es que aunque puedo ejecutar miarchivo.py escribiendo ./miarchivo.py mientras estoy dentro /foo/bar/ No funciona desde ningún otro lugar. ¿Qué estoy haciendo mal?

Gracias.

2voto

Jihane Puntos 6

Es necesario añadir /foo/bar a su $PATH variable de entorno. Navegue hasta su directorio personal escribiendo cd en el indicador, y luego escriba nano .profile . Dentro de este archivo, añada la siguiente línea:

export PATH=$PATH:/foo/bar

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

0 votos

Está al final de mi $PATH (ya lo estaba pero he probado a añadir lo que propones en el .profile también). Cuando escribo "miarchivo.py" en cualquier lugar, me dice "comando no encontrado".

1 votos

En primer lugar, asegúrese de que todo está escrito correctamente - /usr/loacl/bin me ha conseguido antes :). Supongo que estás usando bash como su caparazón, ¿verdad? Tipo source ~/.profile (para asegurarse de que se está leyendo), luego escriba hash para refrescar la memoria del shell de la ruta de búsqueda.

0 votos

Cuando escribo source ~/.profile, todo lo que veo es una línea en blanco. Así que supongo que no se está leyendo ya que al editarlo, veo la línea export PATH=$PATH:/foo/bar en él. ¿Qué debo hacer?

2voto

Joop Puntos 360

En su terminal escriba:

which python

asegúrese de que esta ruta en el shebang en la primera línea de su archivo .py. En mi sistema es

#!/usr/local/bin/python

entonces el primer intento:

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

en cualquier terminal

comprueba que el PATH se ha atascado realmente verificando:

$PATH

debería tener la ruta a su script allí ahora.

ahora debería ser capaz de lanzar su forma script en cualquier lugar.

El PATH se restablecerá una vez que se cierre la terminal, por lo que se debe pagar para que se agregue permanentemente a su PATH.

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

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

véase la redacción, por ejemplo. http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html esto asegurará que el .bashrc se cargue cada vez que se inicie la terminal, así como cuando se inicie un subshell. Poner el export

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

en algún lugar de su archivo .bashrc. Salga y reinicie la terminal. Eso debería solucionar todo

0voto

un5t0ppab13 Puntos 101

¿A qué Python se dirige?

¿Lo instalaste con Brew? Utiliza una ruta diferente.

which python3 o which python

Elige el que quieras

Copiar esa salida

Pégalo en la parte superior de tu archivo Python

añadir un #! delante de ese camino para que se vea algo así como

#!/usr/local/bin/python3

Asegúrese de cambiar los permisos de los archivos

chmod +x filename

Ponga ese archivo en una carpeta que esté en su ruta

¿No está seguro de si su carpeta está en su ruta?

echo $path

¿Cómo añadir esa carpeta a la ruta?

Encuentra primero tu camino

echo $HOME

Si está usando bash o zsh puede tener algo como esto

En ~/.bash_profile o ~/.bashrc o ~/.zshrc en la parte inferior de su archivo

export PYTHON_UTILS="$HOME/code/python/utils"

export PATH="$PYTHON_UTILS:$PATH"

Considere la posibilidad de eliminar el .py de su archivo porque no es necesario en este caso

Cierra y abre tu terminal, que se abastece de tu archivo por su ruta

Y ahora deberías ser capaz de tratar tu archivo Python de forma similar a un comando bash

No es necesario utilizar python3 filename.py para ejecutar el archivo, puede utilizar simplemente filename

Desde cualquier lugar de tu sistema de archivos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X