É quase certo que, quando você executa sudo
, as variáveis de ambiente virtualen, aliases, funções, etc. não estão sendo transferidas.
A solução seria executar explicitamente o executável Python do ambiente virtual com sudo
. Por exemplo, se o seu virtualenv for ./AwesomeProject, você poderá executar sudo ./AwesomeProject/bin/python <script>
para usar o script com o virtualenv com privilégios de root.