Sur le nouveau MacOS 13 M1/M2, Python 3.9 est pré-installé avec pip3 (pas de pip). Je n'installe pas d'autres versions de Python avec brew/macport ou l'installateur Python, seulement le pré-installé 3.9.
Avec le Python pré-installé, le site-package global est situé dans /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages
(d'autres installations seront dans /Library/Frameworks/Python.framework/Versions/3.9/
)
Le site-package par utilisateur est situé dans ~/Library/Python/3.9/lib/python/site-packages
Quand j'installe un package avec pip3, il sera installé dans l'emplacement par utilisateur, pas l'emplacement global, ainsi que les fichiers exécutables installés ~/Library/Python/3.9/bin
. Par exemple, après avoir mis à jour pip3, pip sera aussi installé dans ~/Library/Python/3.9/bin
.
Je veux exécuter ces fichiers exécutables installés par pip3 sans spécifier le chemin complet. Quand j'ai mis à jour pip3, le système se plaignait toujours qu'il ne pouvait pas trouver pip, et j'ai mis du temps à comprendre pourquoi.
Je peux ajouter ~/Library/Python/3.9/bin
directement à PATH mais je trouve que c'est une solution ponctuelle. Par exemple, avec la prochaine version de macOS, le Python pré-installé pourrait passer à la version 3.10 (comme cela s'est déjà produit), je pourrais alors avoir besoin d'ajouter ~/Library/Python/3.10/bin
à PATH aussi. De temps en temps, je vois que PATH
est modifié pour être long et moche simplement pour inclure Python et les fichiers exécutables associés.
Devrais-je définir PYTHONPATH
sur ~/Library/Python/3.9/bin
et ajouter PYTHONPATH à PATH ? J'aimerais savoir quelle est la meilleure pratique pour utiliser PYTHONPATH/PYTHONHOME
pour le Python pré-installé sur Mac.
Les PYTHONPATH/PYTHONHOME
ne sont pas définis par défaut.
D'après What exactly should be set in PYTHONPATH?, les réponses convenues sont que je n'ai pas besoin de définir PYTHONPATH à moins que je veuille utiliser des bibliothèques non standard. Mais ces réponses semblent ne pas résoudre mon problème, bien sûr, j'ai besoin d'utiliser des bibliothèques non standard pour mon développement, comme pytorch.
--- mise à jour ---
D'après les commentaires que j'ai reçus, j'ai réalisé que j'avais installé Python3 avec xcode-select --install
, MacOS 13 ne préinstalle pas Python3.
Aussi, d'après les commentaires, permettez-moi de réitérer mes questions, 1. Devrais-je définir PYTHONPATH/PYTHONHOME
, pourquoi ou pourquoi pas ? 2. J'ai l'impression qu'ajouter ~/Library/Python/3.9/bin
à PATH est une solution ponctuelle et j'aimerais savoir s'il existe un meilleur moyen.
Évidemment, je devrai ajouter les chemins des exécutables à PATH à la fin. Mais je ne connaissais pas l'usage correct de PYTHONPATH donc j'ai pensé que peut-être je pourrais ajouter les chemins des exécutables à PYTHONPATH puis ajouter PYTHONPATH à PATH. De cette manière, quand j'aurai plus de chemins à ajouter, il me suffira d'éditer PYTHONPATH et PATH restera le même.
Mais cela ne semble pas être l'usage correct de PYTHONPATH d'après ce que j'ai compris jusqu'à présent.