Судо не использует то же самое, 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