2010-12-07 13 views
6

Estoy trabajando en un nuevo servidor para un nuevo lugar de trabajo, y estoy tratando de reutilizar un script CGI que escribí en Python a principios de este año. Mi script CGI comienza con¿Cómo puedo saber dónde se encuentra Python en Unix?

#!/local/usr/bin/python 

Pero cuando corro esta en el nuevo servidor, reprocha no hay tal carpeta. Obviamente Python se mantuvo en un lugar diferente en esta caja, pero no tengo idea de dónde.

no he hecho mucho antes de Unix, lo suficiente para moverse, por lo que si hay algún truco que debo saber aquí lo agradecería :)

Gracias!

+2

Es posible que desee formular este tipo de preguntas en unix.stackexchange.com. Aquí es perfectamente aceptable, pero unix es un buen lugar para estas preguntas específicas no relacionadas con la programación pero relacionadas con la programación – Falmarri

+0

¡Gracias a todos! – Adam

Respuesta

6

Por esta misma razón, se recomienda que cambie su línea tinglado a ser más trayectoria agnóstico:

#!/usr/bin/env python 

Ver this mailing list message para más información:

Considerar las posibilidades de que en un equipo diferente , python puede instalarse en /usr/bin/python o /bin/python en esos casos, #!/usr/local/bin/python fallará. Para esos casos, tenemos que llamar al ejecutable env con un argumento que determinará la ruta de los argumentos buscando en el $PATH y utilizándolo correctamente.

(env casi siempre está localizado en /usr/bin/ lo que uno no tiene que preocuparse de que env no está presente en /usr/bin.)

+0

Incluso en la misma máquina, cuando se usa [virtualenv] (http://pypi.python.org/pypi/virtualenv) la ruta del intérprete cambiará. –

2
# which python 
/usr/local/bin/python 

actualización:

leí mal. Reemplazar su cabecera con

#!/usr/bin/env python

Este se tire en la ubicación pitón del usuario que ejecuta la configuración ambientales del guión

12

Probar:

which python 

en un terminal.

+0

¿No es esta una respuesta más simple y precisa a la pregunta? –

2

Probar: which python o whereis python

1

La forma correcta de resolver este problema es con

#!/usr/bin/env python 

que permite el uso de un sistema binario en el camino en un tinglado.

0

Es una buena idea usar acentos abiertos para script en Python cabecera:

`which python` 
Cuestiones relacionadas