Comment puis-je mettre à jour l'installation par défaut de Python / réparer mon $ PATH sur Mac OS X 10.6.7?

8

Je sais que cette question a déjà été posée sur ce site, et j'ai trouvé quelques discussions dignes, mais les solutions que j'ai trouvées et essayées ne fonctionnent pas. Je veux apprendre Python et j'ai du mal à le configurer correctement sur mon Mac. J'utilise OS X 10.6.7.

J'ai téléchargé le programme d'installation de Python 3.2 sur python.org et l' ai installé, qui s'est installé sur /Library/Frameworks/Python.framework/Versions/3.2/bin. C'est bien pour l'instant car je peux simplement utiliser IDLE pour développer. Afin d'utiliser 3.2 à partir de la ligne de commande, pythonj'ai essayé de réorganiser ma $PATHvariable. Voici à quoi ~/.profileressemble:

PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Cependant, pythonlance toujours 2.6.1:

steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ . ./.profile
steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ 

Après avoir lutté avec cela pendant un certain temps, j'ai décidé que je devrais simplement désinstaller 3.2 et essayer de mettre à jour l'installation système de Python. Je ne suis pas sûr de savoir comment le faire correctement, j'ai donc besoin de faire fonctionner 3.2 avec la ligne de commande ou de mettre à jour 2.6.1.

Steven Zezulak
la source

Réponses:

5

Je viens de résoudre ce problème en installant Python 3.2.2 sur mon Mac OS X Lion, j'ai donc pensé publier comment je l'ai fait dans l'espoir que quelqu'un puisse le trouver utile.

Tout d'abord, je suis d'accord avec shadesandcolour en ce que vous ne devez pas modifier la copie par défaut de python fournie avec votre mac car il pourrait y avoir des scripts qui pourraient ne pas fonctionner correctement lorsqu'ils sont exécutés à l'aide de l'interpréteur Python 3.0+. Cela dit, pour installer ce dernier Python (3.2.2 au moment de ce post), vous devez d'abord télécharger le programme d'installation Python depuis le site officiel. Installez comme d'habitude. Exécutez le fichier "Update Shell Profile.command" dans le dossier / Applications / Python (ver).

Une fois python installé, vous devez modifier votre chemin en tapant "sudo nano / etc / chemins" sur la ligne de commande. Ensuite, entrez votre mot de passe lorsque vous y êtes invité. Ensuite, il suffit de "couper" la ligne "/ usr / local / bin" et de la "coller" AVANT l'apparition de "/ usr / bin". Enregistrez le fichier, fermez tous les terminaux ouverts et exécutez une nouvelle instance de terminal. Maintenant, lorsque vous tapez "python" sur la ligne de commande, le shell recherche d'abord dans / usr / local / bin et exécute la dernière copie de python.

lightalchemist
la source
+1 depuis que j'essaie de comprendre cela toute la journée. En effet, sur Snow Leopard, si la définition du PATH dans la configuration de votre shell ne fonctionne pas, l'édition /etc/pathcomme vous l'avez suggéré fonctionne parfaitement. Pour moi, le problème était d'obtenir à la fois des emacs graphiques et terminaux pour reconnaître que je voulais utiliser une installation python personnalisée. Merci pour le conseil!
jrhorn424
cela a fonctionné si je aussi cd /usr/local/binet cp python3.7 pythonpuis redémarré mon terminal.
openwonk
1

D'après mon expérience, l'utilisation de liens symboliques avec un PATH correctement ordonné est le moyen de faire coexister plusieurs versions de Python dans OS X ou tout autre nix auquel je peux penser. OS X est juste un peu maladroit, mais cela fonctionne de la même manière.

Obtenez d'abord l'image complète en exécutant les commandes suivantes:

which python

Alors:

ls -la /usr/bin/python*

et comparer avec:

ls -la /usr/local/bin/python*

Voyez où pointent les liens symboliques.

Basé sur le CHEMIN que vous avez publié, puisque / usr / bin vient après / usr / local / bin et les autres, vous utilisez probablement l'interpréteur python système:

/usr/bin/python

Si vous avez installé python3.0, il fonctionnera probablement comme:

/usr/local/bin/python

Maintenant que vous savez ce qui pointe où et quel interpréteur est chargé à partir du PATH, vous pouvez apporter les modifications appropriées au PATH et / ou aux liens symboliques. Vous pouvez ensuite utiliser les mêmes techniques pour confirmer les modifications appropriées.

Pour plus d'informations sur l'installation de python sur macOS, consultez Plongez dans python3 et farmdev .

Somantra
la source
/usr/local/bin/pythonn'existe pas mais existe /usr/local/bin/python3. python3 --versiondonne mon installation (3.2). Puis-je simplement renommer ce lien symbolique pour pythonne pas avoir à taper le 3?
Steven Zezulak
Si votre CHEMIN est ordonné correctement (/ usr / local / bin vient après / usr / bin), vous pouvez simplement créer un lien symbolique qui fait cela.
Somantra
1
Mais si / usr / bin vient après / usr / local / bin, il continuera à charger le système python (/ usr / bin / python).
Somantra
0

Peut-être que si vous installez Python via MacPorts, cela mettra à niveau la version du système. En fait, je ne le soupçonne pas, car cela me semble un peu risqué. Mais vous voudrez peut-être vérifier ce que MacPorts fait lorsque vous installez Python avec.

James T Snell
la source
0

J'ai déjà posé cette question à quelqu'un et on m'a déconseillé de changer la version par défaut de python car certaines parties du fonctionnement peuvent dépendre de la version 2.7 où elle se trouve. Cela étant dit, ce n'est pas beaucoup plus de travail pour mettre la commande python3 sur votre chemin. C'est ce que je fais en ce moment et ça semble bien.

bringel
la source
0

Si vous avez utilisé le programme d'installation, votre python se trouve dans / usr / local / bin / python3. Les chemins doivent également être mis à jour automatiquement pour devenir disponibles comme python3dans votre terminal. L'ancien pythonest toujours disponible et peut être utilisé par d'autres systèmes.

Division par zéro
la source