2010-12-07 43 views
6

Je travaille sur un nouveau serveur pour un nouveau lieu de travail, et j'essaie de réutiliser un script CGI que j'ai écrit en Python plus tôt cette année. Mon script CGI commence avecComment trouver où se trouve Python sous Unix?

#!/local/usr/bin/python 

Mais quand je lance ceci sur le nouveau serveur, il se plaint qu'il n'y a pas de dossier. Évidemment Python est resté à un endroit différent sur cette case, mais je n'ai aucune idée d'où.

Je n'ai pas fait beaucoup unix avant, juste assez pour se déplacer, donc s'il y a une astuce que je devrais savoir ici, je vous en serais reconnaissant :)

Merci!

+2

Vous pourriez vouloir poser ce genre de questions sur unix.stackexchange.com. C'est parfaitement acceptable ici, mais unix une bonne place pour ces questions spécifiques de programmation-pas-tout-mais-programmation-connexes – Falmarri

+0

Merci, tout le monde! – Adam

Répondre

6

Pour cette raison, il est recommandé de changer votre ligne de tralala pour être plus chemin agnostique:

#!/usr/bin/env python 

Voir this mailing list message pour plus d'informations:

Tenir compte des possiblités que dans une autre machine , Python peut être installé à /usr/bin/python ou /bin/python dans ces cas, #!/usr/local/bin/python échouera. Pour ces cas, nous appelons l'exécutable env avec l'argument qui va déterminer le chemin des arguments en recherchant dans le $PATH et l'utiliser correctement.

(env est presque toujours situé dans /usr/bin/ donc il ne faut pas inquiéter que env est pas présent à /usr/bin.)

+0

Même sur la même machine, lorsque vous utilisez [virtualenv] (http://pypi.python.org/pypi/virtualenv), le chemin de l'interpréteur change. –

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

Mise à jour:

J'ai mal lu. Remplacez votre tête avec

#!/usr/bin/env python

Cela va tirer dans l'emplacement de python de l'utilisateur qui exécute les paramètres d'environnement du script

12

Essayez:

which python 

dans un terminal.

+0

N'est-ce pas une réponse plus simple et plus précise à la question? –

2

Essayez: which python ou whereis python

1

La bonne façon de résoudre ce problème est avec

#!/usr/bin/env python 

qui permet l'utilisation d'un binaire dans le PATH dans un tralala.

0

Il est une bonne idée d'utiliser des accents graves pour un script Python d'en-tête:

`which python`