If you see herehere, this is not a raspberry related issue, but more a standard virtualenv issue. Seems that not all aliases, packets and libraries of virtualenv are correctly loaded when using sudo.
The link recommends to run directly the virtual environment's Python executable with sudo. Something like:
sudo ./<virtualenv name>/bin/python <script>