O #! linha não é usada e normalmente não seria colocada em um arquivo de script WSGI como usado por mod_wsgi.
Para determinar qual versão / instalação do Python é usada, existem duas partes.
O primeiro como apontado por outra pessoa é descobrir a que biblioteca do Python mod_wsgi.so está vinculada. Na maioria dos sistemas UNIX, isso é feito usando o comando 'ldd'.
ldd mod_wsgi.so
Execute isto no mod_wsgi.so real instalado no diretório de módulos do Apache que está sendo usado. Isso lhe dirá com certeza qual versão do mod_wsgi foi compilada.
Se você não encontrar uma referência a um arquivo libpythonX.Y.so, o seu mod_wsgi.so foi vinculado estaticamente à biblioteca Python. Embora isso funcione, desde que o mod_python também não seja carregado no mesmo Apache, é uma péssima idéia confiar nele como o uso de vinculação estática dos resultados da biblioteca Python ao inchaço desnecessário de seus processos do Apache devido à realocação de código em tempo de execução. ser feito ao carregar o mod_wsgi.so com a biblioteca Python vinculada estaticamente.
Note que o valor de 'sys.executable' quando executado sob o mod_wsgi não tem significado e não pode ser usado como um meio de determinar qual versão do Python foi usada. Isso ocorre porque a linha de comando Python não é usada. Em vez disso, o executável que está sendo executado é, na verdade, o Apache e o sys.executable provavelmente refletirá isso. É somente depois que o Apache é executado e o mod_wsgi.so carregado que o Python é inicializado usando APIs do Python incorporadas. Da mesma forma, executar 'qual python' não ajudará a determinar exatamente qual instalação do Python está sendo usada.
A segunda parte é descobrir qual instalação do Python foi realmente usada em tempo de execução. Para fazer isso, você deve usar um programa world hello WSGI e modificá-lo para despejar o valor de 'sys.prefix'. Isso informa o diretório raiz sob o qual a instalação do Python está localizada. Com base em qual versão da biblioteca compartilhada do Python foi usada, você saberá qual diretório 'lib / pythonX.Y' real sob esse diretório raiz está sendo usado. A versão é importante, pois pode haver várias versões instaladas nesse diretório raiz.
Note que o que você obtém para 'sys.prefix' pode realmente ser diferente do diretório raiz, como você pensou que pode ser baseado na dependência de libpythonX.Y.so do arquivo mod_wsgi.so. Isto é devido à maneira como o Python, quando inicializado, tenta encontrar seu diretório 'lib'.
Por exemplo, se você tivesse o Python 2.6 instalado em '/ usr / local' e outro instalado em '/ usr', mas você compilasse o mod_wsgi contra o '/ usr / local', você ainda pode achar que 'sys .prefix 'resolvido para' / usr '. Isso ocorre porque, por padrão, em sistemas incorporados, o Python examina o valor da variável de ambiente 'PATH' para obter um caminho de pesquisa para localizar um executável 'python' como base para calcular o diretório raiz, mesmo que o executável 'python' não tenha sido usado. comece o processo.
Sob o Apache, porque geralmente é iniciado como 'root', ele não teria necessariamente '/ usr / local / bin' em seu 'PATH' e, portanto, provavelmente encontraria '/ usr / bin / python' use '/ usr' para 'sys.prefix'.
Neste último tipo de cenário, onde se encontra um diretório raiz diferente do que você deseja usar, é possível usar a diretiva WSGIPythonHome na configuração do Apache para substituir o que 'sys.prefix' é calculado automaticamente.
Note que você NÃO PODE usar o WSGIPythonHome para se referir a uma versão diferente do Python, ele deve se referir a um diretório raiz contendo uma instalação do Python da mesma versão principal / secundária. Se você precisar usar uma versão diferente do Python, deverá recompilar e reinstalar o mod_wsgi para que ele seja compilado na versão diferente. A versão / instalação real do Python a ser usada durante a compilação pode ser especificada usando a opção '--with-python' para o script de configuração mod_wsgi quando estiver sendo construído.
Existem outras maneiras de usar a diretiva WSGIPythonHome para substituir a instalação do Python, mas recomenda-se que você fique com o WSGIPythonHome.