Voici la solution :
Si les liens symboliques existants appartiennent à python 3.7, vous devez les dissocier :
brew unlink python
En gros tout ce qu'il faut faire :
brew link --force [email protected]
OU forcez le lien et écrasez tous les fichiers en conflit :
brew link --force --overwrite [email protected]
OU si nécessaire, listez tous les fichiers qui seraient supprimés :
brew link --overwrite --dry-run [email protected]
Ainsi, vous pouvez passer à n'importe quelle version de python disponible dans le dépôt Homebrew.
Consultez également cette réponse pour pyenv utilisation
Ok, merci à @gromgit de la discussion de la communauté Homebrew (https://discourse.brew.sh/t/how-to-default-python-3-8-on-my-mac-using-homebrew/7050)
Voici la solution :
$ brew info [email protected]
[email protected]: stable 3.8.1 (bottled) [keg-only]
...
==> Caveats
Python has been installed as
/usr/local/opt/[email protected]/bin/python3
...
[email protected] is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have [email protected] first in your PATH run:
echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
For compilers to find [email protected] you may need to set:
export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
For pkg-config to find [email protected] you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"
Je m'en tiendrai à python
(v3.7.6) pour le moment et attendez la mise à niveau transparente de la v3.8.1 dans les futures versions.
Vous devrez peut-être ajouter python 3.8.1 à votre PATH dans votre ~/.bash_profile et le mettre en premier afin qu'il remplace les installations précédentes. Découvrez d'abord où python 3.8.1 a été installé, puis ajoutez-le à votre chemin comme ceci :
exporter PATH="/PATH_TO_PYTHON/:${PATH}"
J'ai un Mac d'entreprise avec Python 2.7 préinstallé pour exécuter des logiciels plus anciens.
$ brew install pyenv (successful)
$ pyenv install 3.9.2 (successful)
$ python --version
Python 2.7
$ pyenv global 3.9.2
$ python --version
Python 2.7
Il dit toujours Python 2.7, donc, j'ai fait les commandes suivantes
pyenv init
eval "$(pyenv init -)"
$ python --version
Python 3.9.2
Plus de détails :Lien