Changeant le défaut de python pour une autre version
Actuellement, lorsque j'utilise "python" de commande, les points de python2.6. J'ai installé python3.1 et je veux le "python" point de commandement python3.1. Comment c'est possible?
mahmood@mpc:~$ which python
/usr/bin/python
mahmood@mpc:~$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 2010-11-24 16:14 /usr/bin/python -> python2.6
mahmood@mpc:~$ uname -a
Linux orca 2.6.32-24-server #39-Ubuntu SMP Wed Jul 28 06:21:40 UTC 2010 x86_64 GNU/Linux
Vous avez besoin de changer votre environnement
Qu'est-ce que votre système d'exploitation?
Quel système d'exploitation? Sur linux, vous ne voulez probablement pas à le faire
J'ai édité le post. veuillez vérifier à nouveau 🙂
PATH
variable. En fonction de ce que la plate-forme, c'est évolué différemment, mais le point est de lister les Python3 chemin avant le Python2 chemin.Qu'est-ce que votre système d'exploitation?
Quel système d'exploitation? Sur linux, vous ne voulez probablement pas à le faire
J'ai édité le post. veuillez vérifier à nouveau 🙂
OriginalL'auteur mahmood | 2011-10-06
Vous devez vous connecter pour publier un commentaire.
Puisque vous avez Linux, et si vous voulez il suffit de taper "python" au lieu de "python3" afin d'exécuter Python programmes, une solution est simplement de définir un alias dans vous shell fichier de configuration (.bashrc, etc.). Pour les interpréteurs de commandes Bourne, il doit être quelque chose comme
(ou quel que soit votre Python 3 nom est).
De cette façon, vous n'avez pas à changer quoi que ce soit sur votre système, de sorte que cette solution devrait tout à fait inoffensif et il ne faut pas briser votre système.
OriginalL'auteur Eric O Lebigot
Vous ne voulez vraiment pas à changer ce qui
python
points, car certains programmes peuvent s'attendre à Python 2, et de se briser.La solution est d'utiliser virtualenv: créer un isolé Python 3 environnement (avec la
-p python3
option), l'activer, et vous êtes bon pour aller.#!/path/to/python
shebang. De sorte qu'ils ne se cassent pas. Mais vous avez raisonpython
devrait commencer 2.x de python exécutable.Vrai.
egrep -R '#! */usr/bin/env +python' /usr/bin
me dit que sur Ubuntu, système d'outils sont généralement à l'abri. Mais les programmes concernés comprennentscons
,hg-ssh
oupurple-url-handler
, et pirequodlibet
qui n'est généralement pas commencé à partir d'un terminal (donc j'imagine que ça échoue silencieusement). J'ai changé “outils système” dans “programmes”.OriginalL'auteur Petr Viktorin
Il n'est pas conseillé.
Vous pouvez écrire au top dans votre propre script (un shebang):
Si vous êtes sur Windows, puis installer
pylauncher
. Il comprend#!
.Sur Linux pour faire de votre script exécutable, lancez une fois:
Après que, à l'exécution de votre script:
Pour l'utilisation interactive vous pouvez créer virtualenv comme @Petr Viktorin points. Pour installer/mettre à jour (versions de Ubuntu serveurs sont trop vieux):
Suivez les instructions de la
/path/to/virtualenvwrapper.sh
, pour créer virtualenv qui utilisepython3
:Pour activer virtualenv:
Activement dans un virtualenv
python
se réfère à/path/virtualenv/bin/python
. Donc, vous pouvez exécuter:python myapp.py
, mais plutôt de l'exécuter comme un programme normal comme./myapp.py
Pour la ligne de commande interactive
virtualenv
devrait être utilisé comme @Petr Viktorin points. Doncpython myapp.py
utiliserapython3
.Ah, donc le
virtualenv
l'emporterait sur le shebang? Bon à savoir.myapp.py utilise toujours ce que
python
actuellement désigne, indépendamment de l'arborescence; sivirtualenv
est active ou non. Comme vous l'avez écrit: arborescence n'est utilisé que sous Linux, alors vous exécutez le script commeyour-script
: exempleOriginalL'auteur jfs
Vous pourriez suivre cette procédure:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.1 /usr/bin/python
Mais comme déjà dit par Petr Viktorin, tous les programmes qui s'attendrait à ce python v2 allait s'arrêter de travailler. Donc à utiliser avec précaution. Vous pouvez annuler la modification en cours d'exécution:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.6 /usr/bin/python
OriginalL'auteur mikabytes
ln -sf /usr/bin/python3.1 /usr/bin/python
OriginalL'auteur tMC
Sur Linux/Mac OS, vous pouvez utiliser
python3
au lieu depython
.python.exe
.J'apprécierais une modification à la correction de mon contrôle plus qu'une voix.
Si vous le savez, je n'étais pas celui qui vous ont voté. Cette réponse ne devrait pas être dans les négatifs. +1
Merci, désolé si vous l'avez lu tout snark.
OriginalL'auteur JoePasq
Essayer update-alternatives pour Linux.
Lisez le lien ou la page de man. Essentiellement, il permet de pointer les "python" de la commande à un autre exécutable, et fournit une liste de possibilités, etc. La divulgation complète: je ne l'ai utilisé ce pour java, je ne sais donc pas qu'il va travailler pour python.
+1 et lien: stylesen.org/python_27_debian_squeeze_60
Le lien dit, l'intégralité de la commande est
sudo update-alternatives --config python
. J'ai toujours à re-comprendre comment l'utiliser update-alternatives.OriginalL'auteur andronikus