Eu publiquei o django como está:
pip3 install --user django
Isso resolveu o problema.
Estou tentando executar uma instalação do python3 assim:
pip3 install django
Eu recebo o erro:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/site-packages/pytz'
Eu então tento:
sudo pip3 install django
Eu recebo o erro:
sudo: pip3: command not found
Veja a aparência do meu $ PATH:
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
Como posso obter acesso ao sudo pip3?
O Sudo não está usando o mesmo PATH
como seu usuário atual por motivos de segurança. Em /etc/sudoers
existe uma opção secure_path
que especifica o caminho usado ao executar comandos com o sudo.
O meu parece assim:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Do sudo manpage:
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.
O comando pip3
provavelmente não está no caminho definido pelo arquivo sudoers
. Você pode adicionar o caminho ao secure_path
ou fornecer o caminho completo para o comando pip3
da seguinte forma:
sudo /path/to/pip3 install django
É possível que o sudo não esteja preservando sua variável $ PATH no momento do uso. Tente usar o caminho completo para o binário pip3 no comando, por exemplo: sudo /path/to/pip3 install django
. Se você não tiver certeza do caminho completo, faça which pip3
.
Você sempre pode fazer:
sudo env "PATH=$PATH" pip3 install django
Como mencionado em esta resposta .