#Что означает ошибка
Permission denied
Системный каталог недоступен без прав. Используйте виртуальное окружение или --user; не применяйте sudo pip.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Системный Python | Путь отказа указывает на системный site-packages | Использовать python -m venv |
| Нет прав записи | Запись запрещена в каталоге проекта | Проверить владельца и точный путь отказа |
| Окружение не активно | pip ссылается на другой Python | Активировать окружение |
| Защищено ОС | Сообщение externally-managed-environment | Использовать изолированное окружение |
#Пошаговое решение
- Выясните, куда pip пытается записывать файлыВ терминале проекта запустите
python -m pip --versionиpython -c "import sys; print(sys.executable); print(sys.prefix)". ОшибкаPermission deniedчасто возникает при записи в системный каталог, но может относиться к одному конкретному заблокированному файлу. Прочитайте путь после ошибки: если это системныйsite-packages, не меняйте права всего каталога и не используйтеsudo pip. Если путь внутри проекта, проверьте, не открыт ли файл другим процессом. - Создайте отдельное виртуальное окружениеВ каталоге проекта выполните
python -m venv .venv. Затем в macOS/Linux —source .venv/bin/activate, в Windows cmd —.venv\Scripts\activate.bat; для PowerShell используйте.\.venv\Scripts\Activate.ps1, если политика разрешает. Еслиvenvнедоступен в Debian/Ubuntu, установите подходящий пакетpython3-venvчерез администратора системы. В приглашении обычно появляется(.venv); убедитесь также, чтоpython -m pip --versionуказывает внутрь окружения. - Устанавливайте зависимости в окружениеВ активированном окружении выполните
python -m pip install -r requirements.txt, если проект поставляется с этим файлом, либоpython -m pip install ИМЯ_ПАКЕТА, подставив точное название. Для разовой установки пользовательского пакета безvenvможно использоватьpython -m pip install --user ИМЯ_ПАКЕТА, только если среда допускает этот режим; на системах с защитой EXTERNALLY-MANAGED предпочтительнееvenv. Не применяйте--break-system-packagesкак обычное решение. - Проверьте доступ и исключите блокировку файлаПовторите исходную установку и проверьте
python -m pip show ИМЯ_ПАКЕТА. Если отказ относится к файлу внутри.venv, закройте редактор, терминалы и программы, которые используют эту среду, проверьте свободное место и права текущего пользователя именно на каталог проекта. Не делайте рекурсивноеchmod 777илиchownдля всей системы. Сохраните путь отказавшего файла и выводpython -m pip --version, если проблема остаётся.
#Если не помогло
Не используйте sudo pip install: это может повредить системные пакеты.
#Если проблема осталась
Если «Python: pip — Permission denied при установке пакетов» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.