Pakete konnten aufgrund eines Umgebungsfehlers nicht installiert werden: [Errno 13]


96

In meinem MacOS Mojave-Terminal wollte ich ein Python-Paket mit pip installieren. Am Ende steht:

You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Ich wollte pip mit dem angegebenen Befehl aktualisieren, habe aber eine Fehlermeldung erhalten:

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 
'/Library/Python/2.7/site-packages/pip-18.0-py2.7.egg/EGG-INFO/PKG-INFO'
Consider using the `--user` option or check the permissions.

Ich verstehe nicht wirklich, was ich jetzt tun soll. Ich habe auch festgestellt, dass in der Fehlermeldung Python 2.7 steht, aber ich habe und möchte nur Python 3 verwenden.


6
Haben Sie Folgendes gelesen: "Erwägen Sie die Verwendung der --userOption oder überprüfen Sie die Berechtigungen."?
Klaus D.

Ich habe es gerade versucht, du hast recht! Ich dachte, es würde die Berechtigungen PRÜFEN und keine Berechtigungen geben. Vielen Dank!
Adler

2
Um Pakete für Python3 zu installieren, müssen Sie pip3 verwenden. Um pip zu aktualisieren, führen Sie es einfach als sudo aus, wenn Sie auf Berechtigungsfehler stoßen.
BoboDarph


Antworten:


149

Wenn Sie Python3 + verwenden möchten , um die Pakete zu installieren, die Sie verwenden müssenpip3 install package_name

Und um den Fehler 13 zu lösen, müssen Sie --useram Ende hinzufügen

pip3 install package_name --user

BEARBEITEN:

Für jedes Projekt in Python wird dringend empfohlen , an einer virtuellen Umgebung zu arbeiten. Dieses Tool hilft dabei, die für verschiedene Projekte erforderlichen Abhängigkeiten getrennt zu halten, indem isolierte virtuelle Python-Umgebungen für sie erstellt werden.

Um eine mit Python3 + zu erstellen, müssen Sie den folgenden Befehl verwenden:

virtualenv enviroment_name -p python3

Und dann arbeiten Sie daran, indem Sie es aktivieren :

source enviroment_name/bin/activate

Sobald die virtuelle Umgebung aktiviert ist, wird der Name Ihrer virtuellen Umgebung auf der linken Seite des Terminals angezeigt. Dadurch erfahren Sie, dass die virtuelle Umgebung derzeit aktiv ist. Jetzt können Sie projektbezogene Abhängigkeiten in dieser virtuellen Umgebung installieren, indem Sie nur verwenden pip.

pip install package_name

2
Ich habe das getan, aber ich habe immer noch Probleme. Ich habe eine Flasche installiert, aber sie ist immer noch nicht in meinem Venv zu finden. Was kann ich tun?
Leonard

Versuchen Sie virtualenv -p python3.8 enviroment_name Verwendung: virtualenv [OPTIONEN] DEST_DIR
Tommy Gibbons

1
Funktioniert perfekt. Vielen Dank!
Haardik Dharma

22

Versuchen Sie in Bezug auf den Befehl permissions, sudo vor Ihrem Terminalbefehl zu verwenden:

sudo pip install --upgrade pip

Sudo ist ein Programm, mit dem Sie den Befehl mit den Berechtigungen des Superusers ausführen können.

In Bezug auf die Python Versuchen Sie, pip als ausführbare Datei wie folgt auszuführen:

python3.6 -m pip install <package>

5

Ich habe die gleichen Fehler gemacht, als mir klar wurde, dass ich meine virtuelle Umgebung als Root-Benutzer erstellt habe. Es war schreibgeschützt. Überprüfen Sie daher, ob Ihre virtuelle Umgebung schreibgeschützt ist. mache ein neues venv und versuche es erneut


4

Ich habe den gleichen Fehler erhalten, als ich versucht habe, ein Paket zu installieren (flask-classful).
Ich habe den Fehler gemacht, Anaconda als Root zu installieren. Ich habe den Besitz des installierten Anaconda-Ordners geändert und konnte das Paket erfolgreich installieren.

Verwenden Sie den Befehl chownmit der Option -R, um den Besitz des installierten Anaconda-Ordners rekursiv wie folgt zu ändern:

chown -R owner:group /path/to/anaconda

Hier ist der Eigentümer Ihr Benutzername und die Gruppe der Gruppenname.


3

Für MacOs & Unix

Nur durch Hinzufügen von sudo zum Befehl funktioniert es, als würde es als Superuser ausgeführt.

sudo pip install --upgrade pip

Es wird jedoch empfohlen, dies nicht direkt zu tun - siehe diesen Beitrag


Dies ist für Windows-Benutzer überhaupt nicht hilfreich, und dieser Fehler tritt bei Windows-Benutzern aufgrund von Windows-Betriebsberechtigungen häufiger auf. Außerdem sollten Befehle in Codeblöcke eingeschlossen werden, wenn sie nicht lesbar sind
logos_164

2

Die Antwort ist in der Fehlermeldung. In der Vergangenheit haben Sie oder ein Prozess ein sudo pipund das hat dazu geführt, dass einige der Verzeichnisse unter /Library/Python/2.7/site-packages/...Berechtigungen haben, die es Ihrem aktuellen Benutzer unmöglich machen, darauf zuzugreifen.

Dann hast du eine gemacht, pip install whateverdie sich auf die andere Sache stützt.

Um dies zu beheben, besuchen Sie /Library/Python/2.7/site-packages / ... und suchen Sie das Verzeichnis mit den Root- oder Nicht-Benutzer-Berechtigungen. Entfernen Sie diese Pakete und installieren Sie sie neu, oder erzwingen Sie dem Benutzer den Besitz zu wem sollte Zugang haben.


einfach und funktionierend. Verwenden Sie $ whoami, um zu wissen, welcher Benutzer Sie gerade sind. $ sudo chown Benutzername /Library/Python/2.7/site-packages/ Installieren Sie dann was auch immer ... Möglicherweise müssen Sie chown rekursiv verwenden
Sunil Kumar

2

Ich hatte das gleiche Problem bei der Installation numpymit pip install numpy.

Dann habe ich es versucht

sudo -H pip3 install --upgrade pip

sudo -H pip3 install numpy

Es hat gut für mich funktioniert.

Erläuterung: Die -HOption (HOME) mit sudosetzt die Umgebungsvariable HOME auf das Ausgangsverzeichnis des Zielbenutzers (standardmäßig root). Standardmäßig ändert sudo HOME nicht.



1

Ich habe bereits alle hier veröffentlichten Vorschläge ausprobiert, erhalte aber immer noch die Errno 13,

Ich benutze Windows und meine Python-Version ist 3.7.3

Nachdem ich 5 Stunden lang versucht hatte, es zu lösen, funktionierte dieser Schritt für mich:

Ich versuche, die Eingabeaufforderung durch Ausführen als Administrator zu öffnen


0

Ich hatte auch das gleiche Problem, ich habe viele verschiedene Befehlszeilen ausprobiert, diese funktionierte für mich:

Versuchen:

    conda install py-xgboost

Das habe ich bekommen:

Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/simplonco/anaconda3

  added / updated specs:
    - py-xgboost


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _py-xgboost-mutex-2.0      |            cpu_0           9 KB
    ca-certificates-2019.1.23  |                0         126 KB
    certifi-2018.11.29         |           py37_0         146 KB
    conda-4.6.2                |           py37_0         1.7 MB
    libxgboost-0.80            |       he6710b0_0         3.7 MB
    mkl-2019.1                 |              144       204.6 MB
    mkl_fft-1.0.10             |   py37ha843d7b_0         169 KB
    mkl_random-1.0.2           |   py37hd81dba3_0         405 KB
    numpy-1.15.4               |   py37h7e9f1db_0          47 KB
    numpy-base-1.15.4          |   py37hde5b4d6_0         4.2 MB
    py-xgboost-0.80            |   py37he6710b0_0         1.7 MB
    scikit-learn-0.20.2        |   py37hd81dba3_0         5.7 MB
    scipy-1.2.0                |   py37h7c811a0_0        17.7 MB
    ------------------------------------------------------------
                                           Total:       240.0 MB

The following NEW packages will be INSTALLED:

  _py-xgboost-mutex  pkgs/main/linux-64::_py-xgboost-mutex-2.0-cpu_0
  libxgboost         pkgs/main/linux-64::libxgboost-0.80-he6710b0_0
  py-xgboost         pkgs/main/linux-64::py-xgboost-0.80-py37he6710b0_0

The following packages will be UPDATED:

  ca-certificates     anaconda::ca-certificates-2018.12.5-0 --> pkgs/main::ca-certificates-2019.1.23-0
  mkl                                            2019.0-118 --> 2019.1-144
  mkl_fft                              1.0.4-py37h4414c95_1 --> 1.0.10-py37ha843d7b_0
  mkl_random                           1.0.1-py37h4414c95_1 --> 1.0.2-py37hd81dba3_0
  numpy                               1.15.1-py37h1d66e8a_0 --> 1.15.4-py37h7e9f1db_0
  numpy-base                          1.15.1-py37h81de0dd_0 --> 1.15.4-py37hde5b4d6_0
  scikit-learn                        0.19.2-py37h4989274_0 --> 0.20.2-py37hd81dba3_0
  scipy                                1.1.0-py37hfa4b5c9_1 --> 1.2.0-py37h7c811a0_0

The following packages will be SUPERSEDED by a higher-priority channel:

  certifi                                          anaconda --> pkgs/main
  conda                                            anaconda --> pkgs/main
  openssl                anaconda::openssl-1.1.1-h7b6447c_0 --> pkgs/main::openssl-1.1.1a-h7b6447c_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
libxgboost-0.80      | 3.7 MB    | ##################################### | 100% 
mkl_random-1.0.2     | 405 KB    | ##################################### | 100% 
certifi-2018.11.29   | 146 KB    | ##################################### | 100% 
ca-certificates-2019 | 126 KB    | ##################################### | 100% 
conda-4.6.2          | 1.7 MB    | ##################################### | 100% 
mkl-2019.1           | 204.6 MB  | ##################################### | 100% 
mkl_fft-1.0.10       | 169 KB    | ##################################### | 100% 
numpy-1.15.4         | 47 KB     | ##################################### | 100% 
scipy-1.2.0          | 17.7 MB   | ##################################### | 100% 
scikit-learn-0.20.2  | 5.7 MB    | ##################################### | 100% 
py-xgboost-0.80      | 1.7 MB    | ##################################### | 100% 
_py-xgboost-mutex-2. | 9 KB      | ##################################### | 100% 
numpy-base-1.15.4    | 4.2 MB    | ##################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

0

Versuchen Sie diese Befehlszeile unten für MacOS , um die Berechtigung des Benutzers zu überprüfen.

$ sudo python -m pip install --user --upgrade pip

0

Ich habe Anaconda für Python 3 installiert. Ich habe auch Python2 auf meinem Mac.

python --version

gibt mir

Python 3.7.3

python2.7 --version

gibt mir

Python 2.7.10

Ich wollte das pyspark-Paket in python2 installieren, da es bereits in python3 installiert war.

python2.7 -m pip install pyspark

gibt mir einen Fehler

Pakete konnten aufgrund eines Umgebungsfehlers nicht installiert werden: [Errno 13] Berechtigung verweigert: '/Library/Python/2.7/site-packages/pyspark' Verwenden Sie die --userOption oder überprüfen Sie die Berechtigungen.

Der folgende Befehl hat es gelöst. Gott sei Dank musste ich keine Konfigurationsänderungen vornehmen.

python2.7 -m pip install pyspark --user

Pyspark sammeln Voraussetzung bereits erfüllt: py4j == 0.10.7 in /Library/Python/2.7/site-packages (von pyspark) (0.10.7) Gesammelte Pakete installieren: pyspark Pyspark-2.4.4 erfolgreich installiert Sie verwenden pip Version 18.1 Version 19.3.1 ist jedoch verfügbar. Sie sollten ein Upgrade über den Befehl 'pip install --upgrade pip' in Betracht ziehen.


0

Ich hatte ähnliche Probleme in einem Venv auf einer gemounteten NTFS-Partition unter Linux mit den richtigen Berechtigungen. Das Sicherstellen, dass pip mit --ignore-installiert lief, löste das Problem, dh:

python -m pip install --upgrade --ignore-installed


0

Auf dem Mac gibt es kein 3.7Verzeichnis oder das Verzeichnis 3.7gehört root. Also habe ich dieses Verzeichnis entfernt, ein neues Verzeichnis vom aktuellen Benutzer erstellt und es dorthin verschoben. Dann wird die Installation ohne Fehler abgeschlossen.

sudo rm -rf /Library/Python/3.7
mkdir 3.7
sudo mv 3.7 /Library/Python
ll /Library/Python/
pip3 install numpy

0

Dies passiert mir auch, wenn ich versuche, das opencv-pythonPaket zu installieren :

Installationsversuch

Ich kann es mit der Kommandozeile beheben

python3 -m pip install {name of package} --user

Wenn ich versuche, das besagte Paket zu installieren, lautet der Befehl:

python3 -m pip install opencv-python --user

Daraus resultiert:

Ergebnis


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.