web-dev-qa-db-fra.com

Appliquer un script Shell pour exécuter une version spécifique de python

Mise à jour.

Changer l'alias ne fonctionne malheureusement pas. J'ai changé l'alias en alias python = '/ usr/bin/python2.7', mais le script Shell exécute toujours le script python dans la version 2.4.3.

Muru - J'utilise PYTHONPATH pour me diriger vers le chemin python. Cependant, comme vous l'avez dit, cela peut ne pas être correct. Existe-t-il une version de PYTHONPATH qui peut être utilisée pour diriger un exécutable spécifique python?

Le script shell est ci-dessous comme demandé.

cd ../../../..

export BREVE_CLASS_PATH=/home/user/breve_2.7.2/lib/classes
export PYTHONPATH=/usr/bin/python2.7


cd /home/user/breve_2.7.2

./bin/breve /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py

J'exécute un script Shell qui exécute un script python dans un certain programme.

Mon problème est que le script python est lancé dans python 2.4 alors que j'en ai besoin pour fonctionner dans python 2.7. Dans le script Shell, j'ai ajouté la ligne suivante pour essayer de forcer l'utilisation de python2.7.

export PYTHONPATH=/usr/bin/python2.7

Cependant, lorsque le script python affiche la version qu'il utilise, je reçois python 2.4.3. Est-ce que je vais dans le bon sens à ce sujet?

Comment dois-je procéder?

1
Slimjimmy

Étant donné que vous avez plusieurs versions de python installées et que vous souhaitez déterminer quelle python doit être utilisée par défaut, vous devez utiliser la commande update-alternatives qui conserve les liens symboliques déterminant les commandes par défaut.

Tout d'abord, lancez ceci:

update-alternatives --list python

Si le résultat est:

update-alternatives: error: no alternatives for python

Ensuite, vous devez utiliser update-alternatives pour --install alternatives des différentes versions de python que vous possédez (si l'option --list donne lieu à la liste des alternatives, passez directement à la --config option mentionnée plus tard). Les paramètres de l'option --install sont les suivants: groupe, cible et priorité, le numéro de priorité le plus élevé ayant le rang de priorité le plus élevé. Groupe signifie le chemin de la commande à laquelle un groupe d'alternatives sera attribué:

update-alternatives --install /usr/bin/python python /usr/bin/python2.4 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

Après cela, python 2.7 est votre valeur par défaut python, car un numéro de priorité plus important lui a été attribué et vous avez les deux versions python installées comme alternatives (ou plus si vous avez installé autres versions aussi). Gardez à l'esprit que python 2.7 est maintenant la valeur par défaut python pour tout.

Vous pouvez maintenant lister à nouveau les alternatives installées pour un groupe avec le paramètre --list:

update-alternatives --list python

/usr/bin/python2.4
/usr/bin/python2.7

Et maintenant, vous pouvez basculer entre les alternatives avec:

update-alternatives --config python

Entrez le numéro de sélection et vous êtes prêt à utiliser la version souhaitée de python comme python par défaut.

Utilisez les pages de manuel pour en savoir plus sur update-alternatives:

man update-alternatives
1
Ahti Komu

Pourquoi ne pas simplement faire

python /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py 

dans la dernière ligne. Cela devrait résoudre le problème (lorsque le Shebang est correct).

1
don.joey