Я пытаюсь запустить установку python3 следующим образом:
pip3 install django
Я получаю сообщение об ошибке:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/site-packages/pytz'
Затем я пытаюсь:
sudo pip3 install django
Я получаю сообщение об ошибке:
sudo: pip3: команда не найдена
Вот как выглядит мой $ PATH:
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
Как я могу получить доступ sudo к pip3?
Судо не использует то же самое PATH
как ваш текущий пользователь по соображениям безопасности. В /etc/sudoers
есть вариант secure_path
который указывает путь, используемый при запуске команд с помощью sudo. Мой выглядит так:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Из справочной страницы sudo:
secure_path Path used for every command run from sudo. If you don't trust the people running sudo to have a sane PATH environment variable you may want to use this. Another use is if you want to have the “root path” be separate from the “user path”. Users in the group specified by the exempt_group option are not affected by secure_path. This option is not set by default.
В pip3
команда, вероятно, не находится в пути, определенном sudoers
файл. Вы можете добавить путь к secure_path
или укажите полный путь к pip3
команда вроде этой:
sudo /path/to/pip3 install django
Возможно, sudo не сохраняет вашу переменную $ PATH при использовании. Попробуйте использовать в команде полный путь к двоичному файлу pip3, например: sudo /path/to/pip3 install django
. Если вы не уверены в полном пути, сделайте which pip3
.
Я выполнил установку django следующим образом:
pip3 install --user django
Это устранило проблему.