Estou configurando uma aplicação de flask e uma instância do Ubuntu 12.04.3 LTS EC2 e tudo parecia estar funcionando bem (ou seja, eu poderia acessar a página via url publicamente disponível) até tentar importar um módulo (por exemplo, numpy ) e percebi que o python do apache difere daquele que usei para compilar o mod_wsgi e também o que estou usando
Estou executando o apache2.
Os logs do apache2 mostram os avisos (especificamente a última linha mostra que o caminho não foi alterado):
[warn] mod_wsgi: Compiled for Python/2.7.5.
[warn] mod_wsgi: Runtime using Python/2.7.3.
[warn] mod_wsgi: Python module path '/usr/lib/python2.7/:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib$
Eu tentei definir o caminho no meu host virtual conf (meu python está localizado em / home / ubuntu / anaconda / bin junto com todas as outras bibliotecas):
WSGIPythonHome /home/ubuntu/anaconda
WSGIPythonPath /home/ubuntu/anaconda
<VirtualHost *:80>
ServerName xx-xx-xxx-xxx-xxx.compute-1.amazonaws.com
ServerAdmin [email protected]
WSGIScriptAlias / /var/www/microblog/microblog.wsgi
<Directory /var/www/microblog/app/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/microblog/app/static
<Directory /var/www/FlaskApp/FlaskApp/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Mas ainda recebo os avisos e o caminho do python do apache não mudou - onde preciso colocar as diretivas relevantes para apontar o apache na minha versão e módulos do python (por exemplo, scipy, numpy etc)?
Separadamente, eu poderia ter evitado isso usando ambientes virtuais?
Obrigado antecipadamente.
EDIT # 1:
Eu corri:
>>> import sys
>>> print sys.prefix
Para obter:
/home/ubuntu/anaconda
E executando ldd mod_wsgi.so com set / unset LD_LIBRARY_PATH fornece o mesmo symlink
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f13ca1c1000)
Qual é a versão do sistema do python NÃO o que eu quero e não o que eu compilei mod_wsgi quando eu corri:
./configure --with-python=/home/ubuntu/anaconda/bin/python2.7