2 votes

Comment exécuter python dans un autre répertoire ?

Je fais de la maintenance pour un code python. Python est installé dans /usr/bin le code installé dans /aaa un python 2.5 installé sous le nom de /aaa/python2.5 . Chaque fois que je lance Python, il utilise /usr/bin un. Comment le faire fonctionner /aaa/python2.5 ?

Aussi, quand je lance Python -v; import bbb; bbb.__file__; il montrera automatiquement qu'il utilise bbb module sous /usr/ccc/ (je ne sais pas pourquoi), au lieu d'utiliser bbb module sous /aaa/python2.5/lib

Comment faire pour qu'il exécute python2.5 et utilise le module `/aaa/python2.5/lib' ? La raison pour laquelle je pose cette question est que si nous maintenons un code, mais que d'autres personnes l'utilisent toujours, nous devons installer le code dans un nouveau répertoire et le modifier, l'exécuter et le déboguer.

1voto

Erica Xu Points 545

Faites /aaa/python2.5 python_code.py . Si vous utilisez Python 2.5 plus souvent, envisagez de modifier le paramètre $PATH pour que Python 2.5 soit la version par défaut.

1voto

Fredrik Pihl Points 20944

Changez le ligne shebang (si une telle ligne existe)

Nominal

#!/usr/bin/env python

est utilisé pour démarrer l'interpréteur python trouvé en premier dans le chemin, c'est ainsi que virtualenv fonctionne, c'est-à-dire qu'il change le chemin de sorte que l'interpréteur choisi soit placé en premier et la ligne ci-dessus fonctionne simplement.

Dans votre exemple, changez i en

#!/aaa/python2.5

Notez que le drapeau exécutable doit être activé pour que cela fonctionne. Exemple :

$ chmod u+x script.py
$ ./script.py

Voir PYTHONPATH pour une description de la manière dont python recherche les modules.

0voto

Ajoutez ceci à votre .bash_profile (créer si non existant, c'est un fichier caché) :

python25(){
    /aaa/python2.5 "$1"
}

Vous pouvez maintenant utiliser Python (dernière version) et Python 2.5 :

$ python my_file.py

$ python25 my_file.py

Bonne chance !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X