Como é possível que o mod_wsgi seja compilado contra o Python 2.7.3, mas use o tempo de execução 2.7.2?

1

O seguinte é o que aparece no meu error_log:

[Sat Nov 17 23:13:14 2012] [warn] mod_wsgi: Compiled for Python/2.7.3.
[Sat Nov 17 23:13:14 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.

Se eu verificar minha variável $ PATH e até mesmo em / etc / paths, / usr / local / bin (que contém o Python 2.7.3) vem antes de / usr / bin (que contém o Python 2.7.2).

Existe algum outro caminho que estou perdendo? Como posso usar o tempo de execução correto?

    
por Ian William Kohl 18.11.2012 / 07:45

1 resposta

1

Consegui determinar o motivo pelo qual o tempo de execução mais antigo foi usado.

A solução rápida era criar um link simbólico / usr / bin / python (que era originalmente 2.7.2) para / usr / local / bin / python, onde a versão mais nova do Python também faz o / usr / bin / python 2.7.3 . Ao reiniciar o Apache, o 2.7.3 foi usado, o que significa que o / usr estava sendo usado em / usr / local. No entanto, eu não queria ficar com isso como a solução, então eu removi o link simbólico.

Após mais algumas pesquisas, eu olhei para o script apachectl e pude determinar que ele estava carregando variáveis de ambiente para o Apache de / usr / sbin / envvars

Eu modifiquei a seguinte linha do arquivo envvars para incluir / usr / local / lib e reiniciei o Apache. Ele foi carregado com o Python 2.7.3 (resolvendo assim um problema separado com o _uname que eu estava tendo com o Django que é causado por discrepâncias 2.7.2 / 2.7.3)

DYLD_LIBRARY_PATH="/usr/local/lib:/usr/lib:$DYLD_LIBRARY_PATH"
    
por 18.11.2012 / 15:58