доступ к установке pip запрещен в Windows

110

Я пытаюсь запустить pip install mitmproxyна Windows, но я получаю доступ запрещен, даже cmdи с PowerShellпомощью Run as Administratorопции.

WindowsError: [Error 5] Access is denied: 'c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u\\cryptography-0.9.1\\.eggs\\cffi-1.1.2-py2.7-win-amd64.egg\\_cffi_backend.pyd'

Как я могу заставить это работать?

Бруно Кляйн
источник
Есть также хороший старый пост: есть идеи, как обновить python PIP в окне Windows?
strpeter

Ответы:

140

В случае окон в cmd попробуйте запустить установку pip с помощью исполняемого файла python

например

python -m pip install mitmproxy

это должно работать, по крайней мере, у меня это сработало для установки другого пакета.

Найяк
источник
6
По какой-то причине права доступа к временным файлам были для моего пользователя меньше, чем полный контроль. Этот путь изменил python -mситуацию.
Джейсон Дункельбергер,
2
Знаем ли мы, почему это работает? А не через PowerShell?
Big Money
66

Измените разрешения безопасности папки установки Python:

  1. Откройте оболочку Python
  2. Перейти в диспетчер задач
  3. Найдите процесс Python
  4. Щелкните правой кнопкой мыши и откройте местоположение
  5. Папка откроется в проводнике, перейдите в каталог
  6. Щелкните папку правой кнопкой мыши и выберите свойства
  7. Перейдите на вкладку безопасности и нажмите "изменить".
  8. Добавьте всех и дайте им разрешение на чтение и запись.
  9. Сохраните изменения

Если вы открываете cmdкак админ; тогда вы можете сделать следующее:

Если в вашем установлен Python PATH, то:

python -m pip install mitmproxy
Ричард Кеннет Несьчиор
источник
3
Мне пришлось сделать это как для ВСЕХ ПАКЕТОВ ПРИЛОЖЕНИЙ, так и для пользователей, но потом это сработало.
Хроника,
1
Работает отлично. Благодаря тонну!
Sudipto Shome
3
Альтернативный путь с аналогичными усилиями: 1) Установить Linux 2)sudo pip install foo
Nearoo
1
@Chronicle Вы действительно разрешили всем читать и писать в профили пользователей? Если да, то это довольно плохая идея (очень плохая).
Давид Ференци Рогожан
@Richard Как добавление разрешений на чтение и запись в каталоги Python может решить проблему с отказом в разрешении в tempкаталоге пользователя ? Я бы сказал, что это способ выполнения pip( python -m pipвместо того, pipкак предложил @nayak), что помогает, эти 9 шагов до этого, скорее всего, не имеют значения (поскольку на самом деле это не имеет никакого смысла).
Давид Ференци Рогожан
27

Лично я обнаружил, что открытие cmdот имени администратора и затем запуск, python -m pip install mitproxy похоже, решает мою проблему.

Примечание: - Я установил python черезchocolatey

Бхум Суктитипат
источник
Ты спас мне день, братан!
Маулик Додия
1
если вы работаете cmdкак администратор, вы сможете работать как обычно pip install [package]. Все равно у меня работало.
EliSquared
14

Еще одна вещь, которая не была рассмотрена в предыдущих ответах и ​​которая часто вызывает проблемы в Windows и мешает мне установить какой-либо пакет, несмотря на то, что я запущен как администратор, заключается в том, что вы получаете ту же ошибку, в которой отказано в разрешении, если есть другая программа, которая использует некоторые из файлов, которые вы (или pip install) попробуйте получить доступ. Это действительно дурацкая «особенность» Windows, которая всплывает много раз, например, при попытке переместить какие-то файлы.

Кроме того, я понятия не имею, как определить, какая программа блокирует конкретный файл, поэтому проще всего перезагрузиться и выполнить установку перед запуском чего-либо, в частности перед запуском, например, Spyder или любого другого программного обеспечения на основе Python. Вы также можете попробовать закрыть все программы, но может быть сложно узнать, какая из них на самом деле содержит файл. Например, для каталога достаточно, чтобы в этом каталоге было открыто окно проводника.

Роберт
источник
Да, помогло мне! Я работал в Git Bash, Pycharm Terminal и Windows Terminal одновременно, после закрытия двух из трех все заработало.
Каппо,
10

Откройте cmd с помощью «Запуск от имени администратора» и выполните команду pip install mitmproxy. Он его установит.

Sharan
источник
10

As, я устанавливаю через Anaconda Prompt. В моем случае это даже не работало с python -m pip installThen, я добавляю это

python -m pip install <package_name> --user

Меня устраивает.

Подобно: python -m pip install "numpy-1.15.4+mkl-cp36-cp36m-win_amd64.whl" --user

Обратите внимание, что двойные кавычки не нужны, вы можете указать имя пакета, который хотите установить.

Другой вариант - запустить командную строку от имени администратора, а затем попробовать установить pip. Он тоже должен работать.

Susan097
источник
Это помогло мне установить пакеты Python (в данном случае sympy) в школе. Спасибо!
JDG
Лучшее решение, когда у вас нет прав администратора в вашей системе.
Аджай Шарма,
5

Попробуйте дать разрешение на полный контроль над папкой python.

Найдите корневой каталог python -> щелкните правой кнопкой мыши -> свойства -> безопасность -> изменить -> предоставить пользователям полный доступ -> да и дождитесь завершения процесса.

Меня устраивает.

пижамы
источник
3

Попробуйте удалить папку c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6uвручную, а затем повторите команду pip.

Феликс
источник
Спасибо за это. Некоторые временные pip-файлы блокировали установку.
Eok
3

Открытие командной строки в качестве администратора просто работало для меня без использования исполняемого файла Python. Щелкните правой кнопкой мыши ярлык командной строки и выберите «Запуск от имени администратора». Затем выполните следующую команду.

pip install Django
Charasala
источник
То же самое для меня - просто нужно было запустить cmd от имени администратора.
Charidimos 01
3

В моем случае причиной была открытая записная книжка jupyter, которая импортировала соответствующую библиотеку; Основная причина, по-видимому, связана с ошибкой Windows из-за того, что файл открыт / используется (см. также ответ @ Robert и рекомендацию по перезагрузке).

Еще одна вещь, которую нужно проверить, - это то, что никакие другие процессы python не работают.

Для меня выключение сервера ноутбука решило проблему.

etov
источник
2
  1. Откройте командную строку от имени администратора.

  2. Чтобы установить любой пакет Python, используйте эту команду, включая --user.

pip install --ignore-installed --upgrade --user <packagename>

Амар Кумар
источник
1

Когда ничего не помогает, попробуйте выйти из IDE. У меня было много случаев, когда это было вызвано PyCharm. Как только я вышел из PyCharm, я наконец смог установить свои пакеты из командной строки. В качестве альтернативы вы также можете установить через PyCharm в Настройки -> Проект: xxx -> Project Interpreter -> +.

кичик
источник
1
У меня была такая же проблема, пока я не закрыл Spyder
atm
0

Запустите cmd.exe от имени администратора и введите:

python -m pip install
mdev
источник
0

Я столкнулся с подобной проблемой, но сообщение об ошибке

[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)

Сначала я попробовал этот https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035 , но, похоже, он не смог решить мои проблемы, и все еще повторяю та же проблема.

Во-вторых, если вы работаете на бизнес-компьютере, как правило, он может иметь фильтр веб-контента (но я могу получить доступ к https://pypi.python.org напрямую через браузер). И решить эту проблему, добавив прокси-сервер.

Для окон откройте Internet propertiesчерез IE или Chrome или что-то еще, затем установите действительный адрес и порт прокси-сервера , и таким образом решите мои проблемы

Или просто добавьте опцию. pip --proxy [proxy-address]:port install mitmproxyНо вам всегда нужно добавлять эту опцию при установке с помощью pypi.

Вышеупомянутые два решения являются альтернативой для вас.

К. Энди Ван
источник
0

В моем случае это даже не сработало с python -m pip install

Что я сделал, так это от cmd как администратора:

PsExec.exe -i -s -d cmd.exe

Чтобы создать команду SYSTEM, затем pip install mitmproxy

;)

АДОН
источник
-1

Просто закройте все открытые файлы python. И попробуй запустить от имени администратора. Это сработает.

например

pip install numpy
Файзан Амин
источник