Ich habe ein neues Macbook - ein Benutzer hat es installiert, und dann habe ich einen neuen Benutzer (meinen) installiert, Administratorrechte erteilt und den alten gelöscht. Ich bin auf OS Catalina.
Seit der Installation habe ich mehrere Berechtigungsprobleme. VSCode kann Jupyter Notebook nicht finden und pip
installiert Pakete unter ~/Library/Python/3.7/site-packages
.
Wenn ich es tue, which python3
bekomme ich usr/bin/python3
. Wenn ich es pip3 install <package>
bekomme, bekomme ich: Defaulting to user installation because normal site-packages is not writeable
Und dann heißt es, dass es bereits installiert wurde, obwohl ich nicht darauf zugreifen kann, wenn ich es tue import <package>
.
Es scheint klar zu sein, dass dies ein Berechtigungsproblem ist, pip
nicht auf der "Basis" -Python installiert werden python
kann und sie nicht finden können, in was ich installiert habe ~/Library/Python/3.7/site-packages
.
Ich habe versucht, das Betriebssystem neu zu installieren, aber da ich keine Neuinstallation durchgeführt habe, hat sich daran nichts geändert. Was vermisse ich? Wie genau kann ich Berechtigungen festlegen? Wo finde ich möchte Pakete installiert werden ( venv
sicher, aber einige Pakete Ich will global (wie jupyter
).
Vielen Dank
pip
? Was ist, wenn Sie die viel sicherer verwendenpython -m pip install ....
?python3 -m pip install ...
in diesem Fall, aber ja, wenn mehrere Versionen von Python beteiligt sind, ist es viel sicherer,pip
über den Ansatz "exec module" aufzurufen , sodass Sie wissen, dass Sie die erwartete ausführbare Python-Datei verwenden.Antworten:
Es ist am besten, das vom System bereitgestellte Python nicht direkt zu verwenden. Lassen Sie dieses in Ruhe, da das Betriebssystem es, wie Sie erfahren haben, auf unerwünschte Weise ändern kann.
Am besten konfigurieren Sie Ihre eigenen Python-Versionen und verwalten sie projektbezogen mit
virtualenv
(für Python 2) odervenv
(für Python 3). Dadurch wird jede Abhängigkeit von der vom System bereitgestellten Python-Version beseitigt und jedes Projekt von anderen Projekten auf dem Computer isoliert.Jedes Projekt kann bei Bedarf eine andere Python-Punktversion haben und erhält ein eigenes
site_packages
Verzeichnis, sodass pip-installierte Bibliotheken auch pro Projekt unterschiedliche Versionen haben können. Dieser Ansatz ist ein Hauptproblemvermeider.quelle
Hatte das gleiche Problem bei einer Neuinstallation von Debian 9.12. Ein Neustart meines Servers hat das Problem behoben.
quelle