python 2 au lieu de python 3 comme python par défaut (temporaire)?

sur mon ordinateur

~$ python -V Python 3.2.1 

mais je rencontre des problèmes lorsque je lance des programmes python. Je suppose que (ou du moins, je veux essayer), il y a des problèmes de compatibilité descendante et je veux lancer ces scripts python avec

  python2 2.7.2-2 

qui est également installé sur mon système mais je ne sais pas comment le faire en tant que python par défaut (temporaire). Le script python commence par

  #!/usr/bin/env python 

et j’utilise arch linux.

Vous pouvez utiliser virtualenv

 # Use this to create your temporary python "install" # (Assuming that is the correct path to the python interpreter you want to use.) virtualenv -p /usr/bin/python2.7 --dissortingbute temp-python # Type this command when you want to use your temporary python. # While you are using your temporary python you will also have access to a temporary pip, # which will keep all packages installed with it separate from your main python install. # A shorter version of this command would be ". temp-python/bin/activate" source temp-python/bin/activate # When you no longer wish to use you temporary python type deactivate 

Prendre plaisir!

Appelez simplement le script en utilisant quelque chose comme python2.7 ou python2 au lieu de simplement python.

Alors:

 python2 myscript.py 

au lieu de:

 python myscript.py 

Vous pouvez aussi remplacer le lien symbolique “python” dans / usr / bin qui est actuellement lié à python3 par un lien vers l’exécutable python2 / 2.x requirejs. Ensuite, vous pouvez l’appeler comme vous le feriez avec python 3.

Vous ne voulez pas de “Python par défaut temporaire”

Vous voulez que les scripts 2.7 commencent par

 /usr/bin/env python2.7 

Et vous voulez que les scripts 3.2 commencent par

 /usr/bin/env python3.2 

Il n’y a vraiment aucune utilité pour un Python “par défaut”. Et l’idée d’un “défaut temporaire” n’est qu’une voie de confusion absolue.

Rappelles toi.

Explicit vaut mieux que implicite.

Vous pouvez utiliser alias python="/usr/bin/python2.7" :

 bash-3.2$ alias bash-3.2$ python Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> ^D bash-3.2$ alias python="/usr/bin/python3.3" bash-3.2$ python Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 
 mkdir ~/bin PATH=~/bin:$PATH ln -s /usr/bin/python2 ~/bin/python 

Pour arrêter d’utiliser python2, exit ou rm ~/bin/python .

Si vous avez des problèmes avec virtualenv,

Tu peux l’utiliser:

 sudo ln -sf python2 /usr/bin/python 

et

 sudo ln -sf python3 /usr/bin/python 

Utilisez la commande python pour lancer des scripts, pas directement avec le shell. Par exemple

  python2 /usr/bin/command 

AFAIK c’est la méthode recommandée pour contourner les scripts avec une ligne d’interpréteur env mauvaise.

Comme alternative à virtualenv, vous pouvez utiliser anaconda .

Sous Linux, pour créer un environnement avec python 2.7:

 conda create -n python2p7 python=2.7 source activate python2p7 

Pour le désactiver, vous faites:

 source deactivate 

Il est possible d’installer d’autres packages dans votre environnement.