pip / python: Normale Site-Pakete sind nicht beschreibbar

11

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 pipinstalliert Pakete unter ~/Library/Python/3.7/site-packages.

Wenn ich es tue, which python3bekomme ich usr/bin/python3. Wenn ich es pip3 install <package>bekomme, bekomme ich: Defaulting to user installation because normal site-packages is not writeableUnd 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, pipnicht auf der "Basis" -Python installiert werden pythonkann 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 ( venvsicher, aber einige Pakete Ich will global (wie jupyter).

Vielen Dank

Kleinbuchstaben00
quelle
Ich habe auch dieses Problem. Ich frage mich, ob es mit dem Ende der Python 2.7-Unterstützung zu tun hat
Chris Dutrow
Ich habe das gleiche Problem
Mahyar Maleki
1
Sind Sie sicher, dass Sie das richtige verwenden pip? Was ist, wenn Sie die viel sicherer verwenden python -m pip install ....?
Tom de Geus
@TomdeGeus: Nun, 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.
ShadowRanger
Um dies zu beheben, habe ich Python3 (zuvor mit Brew installiert) deinstalliert und Python3 mit Pyenv installiert. Jetzt funktioniert alles. Befolgen Sie diese Anleitung: opensource.com/article/19/5/python-3-default-mac (zum letzten Abschnitt
springen

Antworten:

2

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) oder venv(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_packagesVerzeichnis, sodass pip-installierte Bibliotheken auch pro Projekt unterschiedliche Versionen haben können. Dieser Ansatz ist ein Hauptproblemvermeider.

Chris Johnson
quelle
0

Hatte das gleiche Problem bei einer Neuinstallation von Debian 9.12. Ein Neustart meines Servers hat das Problem behoben.

Chris S.
quelle