Para obter virtualenv disponível no shell automaticamente, você deve criar seu script bin/activate toda vez que o usuário efetuar login. Você pode fazer isso junto com a criação do ambiente virtualenv padrão quando o usuário é criado. Ou você pode simplesmente adicionar o caminho para o interpretador python do virtualenv para a variável $PATH , diretamente no usuário .bash_login , .zshrc ou qualquer outra coisa.
Virtualenv, quando ativado, modifica duas variáveis de ambiente. Primeiro, ele adicionará {virtualenv}/bin ao seu $PATH e, segundo, definirá $VIRTUAL_ENV da variável informando onde exatamente o virtualenv está configurado. Então você pode tentar imitar seu comportamento no Apache definindo essas variáveis. No final, você deve usar o intérprete python do virtualenv baixado com o virtualenv que tem todos os caminhos necessários configurados.
mod_wsgi em sua mão tem algumas opções de configuração que podem ajudá-lo com isso. Deve ser suficiente usar WSGIPythonPath . Você também pode usar WSGIPythonEggs .
No entanto, observe que você deve proteger a configuração inicial de ser modificada pelo usuário, mas acessível pelo usuário que está executando o apache.