Nie można zainstalować pakietów z powodu błędu środowiskowego: [WinError 5] Odmowa dostępu:

88

Mam Windows 10. Zakończyłem instalację Tensorflow. To działa. Mówi „Witaj Tensorflow!”. Ale ma to wszystko przed sobą:

2018-08-18 18:16:01.500579: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 2018-08-18 18:16:01.769002: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1405] Found device 0 with properties: name: GeForce GTX 950 major: 5 minor: 2 memoryClockRate(GHz): 1.3545 pciBusID: 0000:01:00.0 totalMemory: 2.00GiB freeMemory: 1.64GiB 2018-08-18 18:16:01.774030: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1484] Adding visible gpu devices: 0 2018-08-18 18:16:02.095489: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix: 2018-08-18 18:16:02.099093: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0 2018-08-18 18:16:02.100631: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:984] 0: N 2018-08-18 18:16:02.102156: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1097] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1401 MB memory) -> physical GPU (device: 0, name: GeForce GTX 950, pci bus id: 0000:01:00.0, compute capability: 5.2) Hello Tensorflow!

Proces zwrócił 0 (0x0) czas wykonania: 2,327 s Aby kontynuować, naciśnij dowolny klawisz

Kiedy pip3 install --upgrade tensorflow-gpuwpisuję cmb, zarówno administracyjne, jak i normalne, otrzymuję to - Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\users\\dylan\\appdata\\local\\programs\\python\\python35\\Lib\\site-packages\\numpy\\.libs\\libopenblas.BNVRK7633HSX7YVO2TADGR4A5KEKXJAW.gfortran-win_amd64.dll' Consider using theużytkownik option or check the permissions.Proszę, pomóż mi. Nie jest informatykiem ani inżynierem. Ale koduję dla zabawy.

Dylan Cooper
źródło
15
Dodaj --userdo pip3polecenia instalacji.
Zain Patel
6
Nie rozumiem, dlaczego teraz musimy użyć --user? Ponieważ to rzekomo instaluje się w katalogu użytkownika, co może nie być tym, czego chcesz. Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.)
not2qubit
2
Naprawdę nie chcę instalować w katalogu użytkownika, a uruchomienie CMD jako administratora powoduje te same błędy.
Michał Szczepaniak

Odpowiedzi:

80

Po prostu wpisz polecenie, które chcesz wykonać za zgodą użytkownika, jeśli nie chcesz zmieniać uprawnień:

pip3 install --upgrade tensorflow-gpu --user
Chayan shri shrimal
źródło
3
@Dylan Cooper, zaakceptuj tę odpowiedź, aby nie musieć przekopywać się przez lata odpowiedzi
PolarBear10
34

uruchom to samo polecenie, używając „--user”

Surowe Zope
źródło
Komunikat o błędzie sugeruje to „Rozważ użycie --useropcji lub sprawdź uprawnienia”. Dodałem --user i zostało to rozwiązane
thanos.a
Nie ma więc różnicy, czy używasz polecenia bez, czy z opcją „--user”? ponieważ to, co wydaje się zakładać ...
min
16

Stwierdziłem, że jeśli uruchomię CMD jako Administrator i uruchomię polecenie, mogę go zainstalować bez problemu. Wypróbuj i przekaż mi swoją opinię.

jcintra
źródło
To i ponowne uruchomienie po zainstalowaniu Pythona działało dla mnie.
Ryan_S
To zadziałało dla mnie. Dziwne, że nawet Terminal Windows jako administrator nie działał.
howdoicode
Pracuje dla mnie. Co ciekawe, tylko otwieranie CMD jako administrator działało, podczas gdy otwieranie Git Bash jako administrator nie działało.
Shlomi A
Rzeczywiście, to działa, dziwnie Windows PowerShell, ponieważ administrator pokazuje komunikat o odmowie dostępu i mówi, że instalacja nie powiodła się, ale faktycznie wykonała zadanie
Joris
11

po prostu zmień uprawnienia dostępu, na którym dany pakiet ma zostać zainstalowany.

W moim przypadku windows10 :

  • goto „C: \ Program Files (x86) \ Python37”
  • kliknij prawym przyciskiem myszy folder Python37 i kliknij właściwości
  • przejdź do karty Bezpieczeństwo i zezwól na pełną kontrolę, klikając przycisk edycji.
  • ponownie otwórz nowy terminal cmd i spróbuj ponownie zainstalować pakiet.
shankar gupta
źródło
10

Użyłem tego polecenia i zadziałało:

python -m pip install --user --upgrade pip
Swapnadeep Mukherjee
źródło
9

Aktualizowałem tensorflow do wersji 1.4.0 i uderzałem głową o ścianę, ponieważ ten błąd nie rozwiązał, ale w końcu go rozwiązałem. Zgadnij co?

Jeden z moich skryptów w Pythonie był uruchomiony i korzystał z tensorflow 😂😂. Pakiet został pomyślnie zainstalowany po zamknięciu. 👍

Hamza_HM
źródło
1
Mam ten sam problem.
Florin Marcus
Chyba miałem ten sam problem. Chociaż zabiłem wszystkie instancje Pythona za pośrednictwem menedżera zadań, udało mi się go zainstalować po ponownym uruchomieniu komputera.
mKay
7

U mnie (w systemie Windows) musiałem zrestartować terminal i uruchomić go jako Administrator (jeśli używasz terminala pycharm, po prostu zamknij pycharm i otwórz go ponownie jako administrator, a następnie spróbuj ponownie), To rozwiązało problem i instalacja się powiodła.

Powodzenia

Eran Levi
źródło
3

Aby zainstalować tensorflow, użyj tego polecenia, w tym --User.

pip install --ignore-installed --upgrade --user tensorflow==2.0.1

Tutaj 2.0.1 to wersja tensorflow.

Amar Kumar
źródło
2

WPISZ CMD w wyszukiwaniu, a gdy wiersz polecenia pojawi się w wyniku wyszukiwania NAJLEPSZE PODEJŚCIE, kliknij go prawym przyciskiem myszy i wybierz „Uruchom jako administrator”, gdy pojawi się okno kontroli użytkownika, wybierz „Tak”. Pojawi się okno wiersza poleceń i powinieneś zobaczyć „C: / WINDOWS / system32>”

w tym momencie po prostu wpisz to, co chcesz, powinno działać!

Adriane Williams
źródło
2

Uaktualnianie pip w systemie Windows za pomocą -

python -m pip install --upgrade pip

a następnie uruchom instalację pip z opcją --user -

pip install --user nazwa_pakietu

rozwiązał mój problem.

pythonuser
źródło
2

Kiedy wszystkie wymienione metody zawiodły, mogłem zainstalować scikit-learn, postępując zgodnie z instrukcjami z oficjalnej strony https://scikit-learn.org/stable/install.html .

Błąd spowodowany ograniczeniem długości ścieżki pliku w systemie Windows

Może się zdarzyć, że pip nie zainstaluje pakietów po osiągnięciu domyślnego limitu rozmiaru ścieżki systemu Windows, jeśli Python jest zainstalowany w zagnieżdżonej lokalizacji, takiej jak struktura folderów AppData w katalogu domowym użytkownika, na przykład:

Collecting scikit-learn
...
Installing collected packages: scikit-learn
ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\username\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\sklearn\\datasets\\tests\\data\\openml\\292\\api-v1-json-data-list-data_name-australian-limit-2-data_version-1-status-deactivated.json.gz'

W takim przypadku możliwe jest zniesienie tego ograniczenia w rejestrze systemu Windows za pomocą narzędzia regedit:

Wpisz „regedit” w menu Start systemu Windows, aby uruchomić regedit.

Idź do Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemklucza.

Edytuj wartość LongPathsEnabledwłaściwości tego klucza i ustaw ją na 1.

Ponownie zainstaluj scikit-learn (ignorując poprzednią zepsutą instalację):

pip install --exists-action=i scikit-learn

Ivona Tau
źródło
2

To powinno działać

pip install --user requests
lopamudra
źródło
1
Dlaczego to zadziała. Podaj więcej wyjaśnień na temat swojej odpowiedzi.
DevMike01
2

Jak wspomniano w błędzie, że nie ma --user, musisz wykonać następujące kroki

  1. Otwórz cmd lub anaconda Navigator
  2. Otwórz katalog instalacyjny Pythona (w przypadku nawigatora anaconda musisz określić ścieżkę, taką jak C: / cd Anaconda
  3. Ostatnim jest python -m pip install --user somepackagename
osama buzdar
źródło
1

O mój. Jest tu tak wiele złych odpowiedzi. Mądre, ale mylące. Zwykle radzę sobie z uprawnieniami w systemie Mac / Linux. Windows jest dla mnie ostatnio nowy. To jest problem, który miałem.

  1. Utwórz virtualenv - ok
  2. activatemy virtualenv - nie powiodło się. Wymaga zakresu do uruchomienia programu PowerShell. System Windows jest pomocny i podaje dokładnie polecenie, które należy uruchomić, aby zezwolić na działanie .ps. Coś jak, chmodale z wykonaniem, scopektóre uważam za dobre.
  3. Teraz, jeśli przeszedłeś powyższe i zainstalowałeś kilka pakietów, wszystko jest w porządku. Aż nagle nie możesz. Wtedy pojawia się ten błąd uprawnień.
  4. Coś, co Ty lub inny proces ustawili uprawnienia do folderu, w którym pip instaluje pakiety. tj. w ...site-packages/moim przypadku podejrzewam, że to OneDrive lub jakieś dziedziczenie uprawnień.

Idealnym rozwiązaniem jest sprawdzenie uprawnień. To trudne, ale jesteś programistą Pythona, prawda? Najpierw sprawdź własnego użytkownika.

  1. whoami np. mycomputer \ vangel
  2. Get-Acl <path which is an issue>
  3. w folderze instalacyjnym Pythona lub virtualenv kliknij prawym przyciskiem myszy i przejdź do zakładki Bezpieczeństwo. Kliknij zaawansowane i przejrzyj uprawnienia. Usunąłem wszystkie odziedziczone uprawnienia i innych użytkowników itp. Oraz dodałem jawność whoamiużytkownika z pełnymi uprawnieniami. następnie zastosowany do wszystkich obiektów.

Nie rób tego bez weryfikacji poniższych kroków. Przeczytaj uważnie wiadomość.

W żadnym wypadku nie jest to rozwiązanie dla wszystkich problemów z uprawnieniami, które mogą Cię dotyczyć. Mogę tylko udzielić wskazówek, jak rozwiązać problem i mam nadzieję, że to rozwiążesz.

ustawienie --userflagi nie jest nigdzie konieczne, jeśli to działa dobrze. Ale nadal nie wiesz, co poszło nie tak.

Więcej kroków: spróbuj usunąć pakiet i zainstalować go. pip uninstall requests pip install requests To działa, ale mam problem z pozwoleniem na konkretny pakiet.

Okazuje się, że system Windows wyświetla błąd uprawnień, gdy plik jest blokowany przez proces. Python zgłasza to jako, [Winerror 5]a mimo to nie mogłem łatwo znaleźć odniesienia do dokumentacji. Przetestujmy tę teorię.

Znajduję dokładny plik, który ma błąd uprawnień. Kliknij usuń. Na pewno system Windows wyświetli windowmonit, że jest otwarty w pythonOczywiście, że tak.

Uderzyłem end taskwe wszystkich python. Działa od 1996. Ale czekałem kilka sekund na wypadek, gdyby jakiś proces uruchamiał Pythona. Task managerWszystko sprawdzone .

Ponieważ 20 razy nie udało mi się zainstalować programu pip w celu zainstalowania określonego pakietu azureml, byłem prawie pewien, że to rozwiązało problem.

Uruchomiłem moją instalację pip i zainstalowałem ją idealnie.

Morał z tej historii: Zrozum, co robisz, zanim skopiujesz wklejanie ze Stackoverflow. Wszystkiego najlepszego.

ps Przestań instalować Pythona lub jego pakiety jako administrator. Mamy to za sobą od 2006 roku

Abhishek Dujari
źródło
1

Rozwiązałem to, ponownie otwierając cmd w trybie administracyjnym, aktywując wirtualne środowisko env i instalując ponownie.

Tak było w przypadku Tensorflow 2.3.0 w środowisku wirtualnym.

mrinmay
źródło
to nie jest odpowiedź ani rozwiązanie problemu.
Juliano Costa
0

W moim przypadku wyłączyłem McAfee, a następnie pomyślnie zainstalowałem tensorflow2.0 RC

Ye Zhang
źródło
0

Korzystanie z podwyższonego wiersza poleceń zdziałało cuda. Wszystko, co musisz zrobić, to biec

pip install <package-name>

Z uprawnieniami administratora.

heywhydot16
źródło
0

W ten sposób rozwiązałem ten problem.

downgrade do Pythona 3.6.x 64bit. Zainstalowałem 3.6.8 64bit.

zainstaluj virtualenv przez pip install virtualenv

upgrade pip do najnowszej wersji, dla mnie to 19.3

przejdź do folderu, w którym chcesz utworzyć środowisko wirtualne i po utworzeniu środowiska wirtualnego wpisz virtualenv ENV, przejdź do podfolderu \ PATH \ ENV \ Script i uruchom plik activ.bat. Teraz będziesz w wirtualnym środowisku.

pip install rasa Problem polega na tym, że tensorflow 15 wymaga 64-bitowego Pythona z nie więcej niż 3.6

soufiane ELAMMARI
źródło
0

Doświadczyłem tego samego problemu podczas próby zainstalowania tensorflow z notebooka jupyter za pomocą Anacondy. --user nie działał.

conda install tensorflow działało dla mnie i nie musiałem zmieniać żadnych ustawień zabezpieczeń.

John Wachter
źródło
0

Spróbuj tego, jeśli nic nie działa w przypadku błędu pozwolenia, to rozwiąże problem.

sudo chown user -R env

jako przykład dla mojej sprawy

sudo chown ubuntu -R venv

Reymond Joseph
źródło
0

Krok 1 - Otwórz monit anaconda z uprawnieniami administratora.

Krok 2 - sprawdź wersję pip pip --version

Krok 3 - wprowadź to polecenie

     **python -m pip install --upgrade pip**

wprowadź opis obrazu tutaj

Abhishek Yadav
źródło
0

Pracował z tym poleceniem

python -m pip install --user --upgrade pip
Bhupender singh
źródło
0

Musiałem zainstalować z pliku wymagań i otrzymywałem ten błąd, ale nie chciałem używać tej --useropcji, ponieważ nie chciałem instalować jej w lokalizacji opisanej przez @ not2qubit . Uruchomiłem więc CMD jako administrator, a następnie włączyłem udostępnianie następującego katalogu ( kliknij prawym przyciskiem myszy> właściwości> Udostępnianie> Udostępnij ... ):

C:\Users\<my user name>\AppData\Local\Temp

Po wykonaniu tej czynności udało mi się zainstalować z mojego pliku wymagań do katalogu aplikacji (tam, gdzie chciałem) zamiast szalonego ..\AppDatakatalogu bez błędu.

Michał Szczepaniak
źródło
0

Miałem ten sam problem podczas dodawania Flaska. Więc użyłem jednego z powyższych poleceń.

pip install --ignore-installed --upgrade --user flask

Dostałem tylko małe ostrzeżenie i zadziałało !!

Instalowanie zebranych pakietów: click, MarkupSafe, Jinja2, itsdangerous, Werkzeug, flask OSTRZEŻENIE: Skrypt flask.exe jest instalowany w katalogu „C: \ Users \ Admin \ AppData \ Roaming \ Python \ Python38 \ Scripts”, który nie znajduje się w PATH. Rozważ dodanie tego katalogu do PATH lub, jeśli wolisz pominąć to ostrzeżenie, użyj --no-warn-script-location. Pomyślnie zainstalowano Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 click-7.1.2 flask-1.1.2 itsdangerous-1.1.0 OSTRZEŻENIE: Używasz pip w wersji 20.1.1; jednak dostępna jest wersja 20.2. Należy rozważyć aktualizację za pomocą polecenia „c: \ python38 \ python.exe -m pip install --upgrade pip”.

Głęboki
źródło
0

spróbuj tego w systemie Windows:

pip install -U <nazwa_pakietu>

Manu Pandu
źródło
-1

To powinno działać.

pip install --user <package_name>
Arjjun
źródło