108 votes

Faire de python3 mon python par défaut sur Mac

Ce que j'essaie de faire ici est de faire de python3 mon python par défaut. A part le python 2.7 qui s'installe automatiquement sur mac, j'ai installé python3 con homebrew . C'est le site web que je suis. http://docs.python-guide.org/en/latest/starting/install3/osx/#install3-osx

Je pense que j'ai bien suivi toutes les instructions, j'ai eu xcode fraîchement installé, Command line tools, et homebrew. Mais voici que ma petite confusion se produit.

Le script vous expliquera les changements qu'il effectuera et vous invitera à le faire avant que l'installation ne commence. Une fois que vous avez installé Homebrew, insérez le répertoire Homebrew en haut de votre variable d'environnement PATH. Vous pouvez le faire en ajoutant la ligne suivante au bas de votre fichier ~/.profile

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

Je ne savais pas vraiment ce que c'était, mais j'en ai conclu que je devais simplement ajouter la ligne suivante au bas du fichier ~/.profile. J'ai donc ouvert le fichier ~/.profil fichier par ouvrir un .profil dans le terminal, et ajouté la ligne suivante en bas. Et maintenant ça ressemble à ça.

export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# Setting PATH for Python 3.6
# The original version is saved in .profile.pysave
export PATH=/usr/local/bin:/usr/local/sbin:$PATH

Et puis j'ai fait brew install python et j'espérais voir python3 quand je le fais python --version. Mais ça me montre juste python 2.7.10. Je veux que mon python par défaut soit python3 pas 2,7

Et j'ai trouvé un petit indice sur le site web.

Est-ce que j'ai un Python 3 installé ?

$ python --version
Python 3.6.4

Si vous voyez toujours 2,7 assurer dans PATH /usr/local/bin/ a la priorité sur /usr/bin/.

Peut-être que ça a quelque chose à voir avec PATH ? Quelqu'un pourrait-il expliquer en anglais simple ce que PATH et comment je pourrais faire en sorte que mon python par défaut soit python3 lorsque j'exécute python --version dans le terminal ?

4 votes

Quel est le problème de juste courir python3 (et pip3 etc.) ? C'est toujours la solution recommandée pour les systèmes *nix au moins jusqu'en 2020 . (Si le caractère supplémentaire est trop important pour vous, il suffit d'aliaser py o py3 a python3 et il est encore plus court que python .) Ou, alternativement, avez-vous envisagé d'utiliser venv / virtualenv ?

1 votes

En attendant, si vous voulez comprendre ce que PATH est, vous ne devez pas chercher dans les sources liées à Python pour cela, mais dans les ressources générales d'Unix. SuperUser o AskDifferent pourrait être plus pertinent que StackOverflow, mais en réalité, vous demandez à quelqu'un d'écrire un tutoriel, il y a déjà beaucoup de meilleurs tutoriels en ligne.

1 votes

Il y a deux cas d'utilisation différents ici : le vôtre et celui de votre système. Laissez macos utiliser la version 2.7 installée, sinon vous aurez des problèmes de dépendance. Je recommande vivement d'installer une deuxième distribution dédiée (comme Anaconda/conda, comme virtualenv l'a suggéré ci-dessus) si vous voulez programmer en python.

193voto

nbari Points 847

Le moyen le plus sûr et le plus simple est probablement d'utiliser brasser et modifiez simplement votre PATH :

Première mise à jour du brassage :

brew update

Ensuite, installez python :

brew install python

Cela va installer et faire un lien symbolique entre python3 et python, pour plus de détails faites :

brew info python

Recherchez les mises en garde :

==> Caveats
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python/libexec/bin

Ajoutez ensuite à votre chemin /usr/local/opt/python/libexec/bin :

export PATH=/usr/local/opt/python/libexec/bin:$PATH

L'ordre des PATH est important, en mettant d'abord l /usr/local/opt/python/libexec/bin permettra de donner la préférence à l'installation de brew (python3) plutôt qu'à celle qui se trouve dans votre système, dans le dossier /usr/bin/python

0 votes

Je suis presque sûr que Homebrew met automatiquement à jour le PATH. Il n'y a aucune raison de coder explicitement en dur le dossier python libexec là-dedans.

13 votes

Je pensais qu'ils avaient arrêté de faire ça l'année dernière : github.com/Homebrew/homebrew-core/pull/14408

1 votes

En faisant cela et en mettant ensuite à jour pip (avec pip3 install -U pip) provoque des erreurs dans les exécutions suivantes de pip con pkg_resources.VersionConflict : (pip 19.1 (/usr/local/lib/python3.7/site-packages), Requirement.parse('pip==19.0.3')) .

63voto

Krunal Rajkotiya Points 631

Avant d'effectuer ces modifications, la version par défaut de python dans mon système était python 2.7.17.

python --version

Python 2.7.17

Pour faire de python3 le python par défaut en remplaçant python2 dans Ubuntu.

  1. Terminal ouvert
  2. cd
  3. nano ~/.bashrc
  4. alias python=python3 (Ajoutez cette ligne en haut du fichier .bashrc)
  5. Appuyez sur ctr+o (Pour sauvegarder le fichier)
  6. Appuyez sur Enter
  7. Appuyez sur ctr+x (Pour quitter le fichier)
  8. source ~/.bashrc OU . ~/.bashrc (Pour rafraîchir le fichier bashrc)

python --version

Python 3.7.5

2 votes

Réponse très bien organisée :+1

3 votes

La réponse va droit au but. Cela a fonctionné sur macOS catalina 10.15.3.

1 votes

Réponse parfaite -

21voto

Reinstate Monica Points 3924

La modification de la version par défaut de python dans l'ensemble du système peut interrompre certaines applications qui dépendent de python2 . La solution alternative serait de créer un alias .

Si vous utilisez zsh (la valeur par défaut sur Mac OS ) exécutez ce qui suit à partir du terminal :

echo 'alias python="python3"' >> ~/.zshrc

0 votes

Cela ne fonctionne que pour les sessions de terminal, cependant si vous fermez votre terminal et rouvrez votre terminal vous avez à nouveau la source bashrc. Existe-t-il une solution permanente ?

0 votes

@BigDreamz Je ne comprends pas ce que vous entendez par "permanent" ?

2 votes

Ça ne fait rien, ça marche pour moi maintenant. J'ai dû créer le code source de zshrc

5voto

Jonathan Points 173

Selon ce S.O. poste La modification de l'interpréteur Python par défaut peut entraîner l'arrêt de certaines applications qui dépendent de Python 2.

Le post fait également référence à l'utilisation du crénelage comme solution, et ceci lien pourrait également être une bonne référence sur la manière de procéder.

Personnellement, je tape simplement "Python3" avant de lancer des scripts ou d'entrer dans un environnement shell au lieu de "python".

1 votes

J'ai décidé que c'est la meilleure option, comme vous l'avez dit : "python3". Je dois juste me rappeler de taper aussi : "pip3" quand j'installe de nouveaux modules. Hehe.

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