2010-03-04 3 views
1

En utilisant CentOS5, j'ai Apache configuré avec les directives suivantes.Apache utilisant Python 2.4, les scripts Python 2.5 échouant

Alias /pscript/ /var/www/pscript/ 
<Directory "/var/www/pscript/"> 
    Options +ExecCGI 
    DirectoryIndex thetest.py 
    AddHandler cgi-script .py 
</Directory> 

Quand j'appelle www.domain.com/pscript/ alors mon script python et d'imprimer mon sys.path, qui affiche python2.4.

Lorsque j'appelle un script différent qui nécessite Python 2.5, j'obtiens une erreur 500 Internal Server.

regardant mon Apache error_log, je vois la ligne suivante:

[Wed Mar 03 16:58:44 2010] [error] [client 000.000.000.000] Please use Python 2.5 or greater 

A partir de la ligne de commande, en cours d'exécution python -V retours Python 2.5.5. J'ai installé 2.4 et 2.5.5, mais seulement 2.5.5 devrait être utilisé.

Dans une tentative de remédier au problème d'Apache, j'ai recompilé Python 2.5.5 pour être sûr, et je me suis assuré d'activer la bibliothèque partagée. Ensuite, j'ai recompilé mod_python au cas où cela affectait quelque chose, mais mon sys.path est toujours python2.4.

Je me demande, ai-je besoin de recompiler Apache 2.2.3 lui-même? J'ai simplement besoin d'Apache pour utiliser Python 2.5.5.

Merci d'avance.

Répondre

3

Est-ce que le script Python ont une première ligne quelque chose comme:

#!/usr/bin/python 

Si oui, peut-être /usr/bin/python est une version Python 2.4, tout en exécutant python directement à partir de la ligne de commande est en cours d'exécution d'un exécutable Python différent (version 2.5) d'ailleurs sur votre chemin. Essayez:

which python 

pour voir ce que l'exécutable est en cours d'exécution lorsque vous exécutez python à partir de la ligne de commande.

+0

De la ligne de commande, j'obtiens/usr/local/bin/python, qui est l'installation de Python 2.5.5. – Structure

+0

Est-ce que votre script Python a '#!/Usr/local/bin/python' en haut, ou autre chose? –

+0

C'était tout. Le script appelait/usr/bin/env pour appeler python. Ça doit avoir été le mauvais. J'ai mis à jour mon script à '#!/Usr/local/bin/python' et l'impression de mon' sys.path' montre maintenant qu'il utilise la bonne version. Je vous remercie! – Structure