Nie można zainstalować pakietów z powodu błędu środowiskowego: [Errno 13]


108

W moim terminalu MacOS Mojave chciałem zainstalować pakiet Pythona z pip. Na końcu jest napisane:

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.

Chciałem więc zaktualizować pip podanym poleceniem, ale wyskoczył mi błąd:

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.

Naprawdę nie rozumiem, co mam teraz zrobić. Zdałem sobie również sprawę, że w komunikacie o błędzie jest napisane Python 2.7, ale mam i chcę używać tylko Pythona 3.


6
Czy przeczytałeś: „Rozważ użycie --useropcji lub sprawdź uprawnienia”?
Klaus D.

Właśnie spróbowałem, masz rację! Myślałem, że to sprawdzi uprawnienia, a nie DAJE uprawnień. Dziękuję Ci!
Adler

2
Aby zainstalować pakiety dla python3, musisz użyć pip3. Aby zaktualizować pip, po prostu uruchom jako sudo, jeśli napotkasz błędy uprawnień.
BoboDarph


Odpowiedzi:


168

Jeśli chcesz użyć python3 + do zainstalowania pakietów, których potrzebujeszpip3 install package_name

Aby rozwiązać errno 13 , musisz dodać --userna końcu

pip3 install package_name --user

EDYTOWAĆ:

W przypadku każdego projektu w Pythonie zdecydowanie zaleca się pracę w środowisku wirtualnym , jest to narzędzie, które pomaga utrzymać zależności wymagane przez różne projekty oddzielnie, tworząc dla nich izolowane środowiska wirtualne w języku Python.

Aby utworzyć taki w python3 + , musisz użyć następującego polecenia:

virtualenv enviroment_name -p python3

A potem pracujesz nad tym po prostu aktywując go:

source enviroment_name/bin/activate

Po aktywacji środowiska wirtualnego jego nazwa pojawi się po lewej stronie terminala. Dzięki temu dowiesz się, że środowisko wirtualne jest obecnie aktywne. Teraz możesz zainstalować zależności związane z projektem w tym środowisku wirtualnym, używając po prostu pip.

pip install package_name

2
Zrobiłem to, ale nadal mam problem. Zainstalowałem kolbę, ale nadal nie można jej znaleźć w moim venv. Co mogę zrobić?
Leonard

Wypróbuj virtualenv -p python3.8 nazwa_środowiska Użycie: virtualenv [OPCJE] DEST_DIR
Tommy Gibbons

1
Działa świetnie. Dziękuję Ci!
Haardik Dharma

23

Jeśli chodzi o polecenie uprawnień, spróbuj użyć sudo przed poleceniem terminala:

sudo pip install --upgrade pip

Sudo umożliwia uruchomienie polecenia z uprawnieniami superużytkownika i zainstaluje pakiet do globalnej, ogólnosystemowej instalacji Pythona. Najlepiej byłoby stworzyć wirtualne środowisko dla projektu, nad którym pracujesz. Spójrz na to

Odnośnie Pythona Spróbuj uruchomić pip jako plik wykonywalny w następujący sposób:

python3.6 -m pip install <package>

Nie jestem do końca pewien, ale uruchamianie tego rodzaju poleceń z uprawnieniami roota zwykle nie jest najlepszym pomysłem: kiedy użyjesz sudo, użytkownik zmieni się z „ty” na „root”, co może prowadzić do niepożądanych rezultatów. Na przykład biblioteki mogą zostać zainstalowane w / home / root zamiast w / home / twoja_nazwa_użytkownika. Ponadto pliki zostaną utworzone w powiązaniu z użytkownikiem / grupą root. Sudo jest potrzebne tylko wtedy, gdy polecenie ma zapisywać pliki w folderach systemowych, takich jak / usr / local / bin! ;)
funder7

1
Tak to prawda. Dodałem komentarz na ten temat
Dominique Paul

5

Popełniłem te same błędy, a potem zdałem sobie sprawę, że stworzyłem swoje wirtualne środowisko jako użytkownik root. Był chroniony przed zapisem, więc sprawdź, czy Twoje środowisko wirtualne jest chronione przed zapisem. zrób nową zapłatę i spróbuj ponownie


4

Wystąpił ten sam błąd, gdy próbowałem zainstalować pakiet (z klasą flask).
Popełniłem błąd, instalując anacondę jako root. Zmieniłem własność zainstalowanego folderu anaconda i mogłem pomyślnie zainstalować pakiet.

Użyj polecenia chownz opcją, -Raby rekurencyjnie zmienić własność zainstalowanego folderu anaconda w następujący sposób:

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

Tutaj właściciel to Twoja nazwa użytkownika, a grupa to nazwa grupy.


3

Odpowiedź znajduje się w komunikacie o błędzie. W przeszłości Ty lub proces wykonaliście sudo pipa, co spowodowało, że niektóre podkatalogi /Library/Python/2.7/site-packages/...miały uprawnienia, które sprawiają, że są one niedostępne dla bieżącego użytkownika.

Następnie zrobiłeś, pip install whateverktóry polega na drugiej rzeczy.

Aby to naprawić, odwiedź /Library/Python/2.7/site-packages / ... i znajdź katalog z uprawnieniami root lub not-your-user i albo usuń, a następnie ponownie zainstaluj te pakiety, lub po prostu wymuś prawo własności do użytkownika do kogo powinien mieć dostęp.


1
proste i działające. użyj $ whoami, aby wiedzieć, którym obecnie jesteś użytkownikiem, a następnie $ sudo chown nazwa_użytkownika /Library/Python/2.7/site-packages/, a następnie pip zainstaluj cokolwiek ... Być może będziesz musiał użyć chown rekurencyjnie
Sunil Kumar

3

Miałem ten sam problem podczas instalacji numpyz pip install numpy.

Potem spróbowałem

sudo -H pip3 install --upgrade pip

sudo -H pip3 install numpy

U mnie to zadziałało.

Objaśnienie: Opcja -H(HOME) z sudoustawia zmienną środowiskową HOME na katalog osobisty użytkownika docelowego (domyślnie root). Domyślnie sudo nie modyfikuje HOME.


3

Dla MacOs i Unix

Samo dodanie sudo do polecenia zadziała, ponieważ uruchomiłoby go jako superużytkownik.

sudo pip install --upgrade pip

Zaleca się jednak, aby nie robić tego bezpośrednio - zobacz ten post


1
W ogóle nie jest to pomocne dla użytkowników systemu Windows, a ten błąd występuje częściej u użytkowników systemu Windows ze względu na uprawnienia operacyjne systemu Windows. Ponadto polecenia powinny być zawarte w blokach kodu, gdy ich nie ma, utrudnia to odczytanie
logos_164


1

Próbowałem już wszystkich sugestii zamieszczonych tutaj, ale nadal otrzymuję errno 13,

Używam systemu Windows, a moja wersja Pythona to 3.7.3

Po 5 godzinach próby rozwiązania tego kroku zadziałał ten krok:

Próbuję otworzyć wiersz polecenia, uruchamiając jako administrator


0

Miałem też ten sam problem, próbowałem wielu różnych linii poleceń, ten działał dla mnie:

Próbować:

    conda install py-xgboost

Oto co mam:

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

wypróbuj poniższy wiersz poleceń dla systemu MacOS, aby sprawdzić uprawnienia użytkownika.

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

0

Mam zainstalowaną anacondę dla Pythona 3. Mam też Python2 na moim Macu.

python --version

daje mi

Python 3.7.3

python2.7 --version

daje mi

Python 2.7.10

Chciałem zainstalować pakiet pyspark w python2, biorąc pod uwagę, że był już zainstalowany w python3.

python2.7 -m pip install pyspark

daje mi błąd

Nie można zainstalować pakietów z powodu błędu środowiskowego: [Errno 13] Odmowa uprawnień: „/Library/Python/2.7/site-packages/pyspark” Rozważ użycie tej --useropcji lub sprawdź uprawnienia.

Poniższe polecenie rozwiązało to. Dzięki Bogu, nie musiałem dokonywać żadnych zmian w konfiguracji.

python2.7 -m pip install pyspark --user

Zbieranie pyspark Wymagania już spełnione: py4j == 0.10.7 w /Library/Python/2.7/site-packages (z pyspark) (0.10.7) Instalowanie zebranych pakietów: pyspark Pomyślnie zainstalowano pyspark-2.4.4 Używasz pip w wersji 18.1 jednak dostępna jest wersja 19.3.1. Powinieneś rozważyć aktualizację za pomocą polecenia „pip install --upgrade pip”.


0

Miałem podobny problem z venv na zamontowanej partycji NTFS na Linuksie ze wszystkimi odpowiednimi uprawnieniami. Upewnienie się, że pip działał z opcją --ignore-installed rozwiązało to, tj .:

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


0

Na Macu nie ma 3.7katalogu lub katalog 3.7jest własnością root. Więc usunąłem ten katalog, utworzyłem nowy katalog według bieżącego użytkownika i przeniosłem go tam. Następnie instalacja kończy się bezbłędnie.

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

0

Dzieje się tak również, gdy próbuję zainstalować opencv-pythonpakiet:

próba instalacji

Mogę to naprawić za pomocą wiersza poleceń

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

Kiedy próbuję zainstalować wspomniany pakiet, polecenie wygląda następująco:

python3 -m pip install opencv-python --user

W rezultacie:

wynik


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.