J'ai un nouveau Macbook - un utilisateur l'a installé, puis j'ai installé un nouvel utilisateur (le mien), accordé des privilèges d'administrateur et supprimé l'ancien. Je suis sur OS Catalina.
Depuis l'installation, j'ai eu plusieurs problèmes de permission. VSCode ne trouve pas Jupyter Notebook, pip
installe les packages sur ~/Library/Python/3.7/site-packages
.
Quand je le fais, which python3
je reçois usr/bin/python3
. Quand je le pip3 install <package>
reçois: Defaulting to user installation because normal site-packages is not writeable
Et puis il dit qu'il a déjà été installé, même si je ne peux pas y accéder quand je le fais import <package>
.
Il semble clair que c'est un problème d'autorisation, pip
ne peut pas installer sur le python "de base", et ils python
ne peuvent pas trouver dans quoi j'ai installé ~/Library/Python/3.7/site-packages
.
J'ai essayé de réinstaller le système d'exploitation, mais comme je n'ai pas effectué une nouvelle installation, cela n'a rien changé. Qu'est-ce que je rate? Comment puis-je corriger les autorisations? Où est-ce que je veux que les packages soient installés ( venv
bien sûr, mais certains packages que je veux global (comme jupyter
)).
Merci
pip
? Et si vous utilisez le plus sûrpython -m pip install ....
?python3 -m pip install ...
dans ce cas, mais oui, lorsque plusieurs versions de Python sont impliquées, il est beaucoup plus sûr d'appelerpip
via l'approche "module d'exéc", donc vous savez que vous utilisez l'exécutable Python attendu.Réponses:
Il est préférable de ne pas utiliser directement le Python fourni par le système. Laissez-le tranquille car le système d'exploitation peut le modifier de manière indésirable, comme vous l'avez vécu.
La meilleure pratique consiste à configurer vos propres versions de Python et à les gérer projet par projet à l'aide de
virtualenv
(pour Python 2) ouvenv
(pour Python 3). Cela élimine toute dépendance à la version Python fournie par le système et isole également chaque projet des autres projets sur la machine.Chaque projet peut avoir une version de point Python différente si nécessaire, et obtient son propre
site_packages
répertoire afin que les bibliothèques installées par pip puissent également avoir différentes versions par projet. Cette approche est un problème majeur.la source
Eu ce même problème sur une nouvelle installation de Debian 9.12. Le redémarrage de mon serveur a résolu le problème.
la source