Назад | Перейти на главную страницу

apache, указывающий на неправильную версию python в ubuntu, как мне изменить?

Я настраиваю приложение фляги и экземпляр Ubuntu 12.04.3 LTS EC2, и все, казалось, работает хорошо (т.е. я мог попасть на веб-страницу через общедоступный URL-адрес), пока я не попытался импортировать модуль (например, numpy) и понял питон apache отличается от того, который я использовал для компиляции mod_wsgi, а также того, который я использую

Я использую apache2.

Журналы apache2 показывают предупреждения (в частности, последняя строка показывает, что путь не изменился):

[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$

Я попытался установить путь в моем виртуальном хосте conf (мой python находится в / home / ubuntu / anaconda / bin вместе со всеми другими библиотеками):

WSGIPythonHome /home/ubuntu/anaconda
WSGIPythonPath /home/ubuntu/anaconda

<VirtualHost *:80>
                ServerName xx-xx-xxx-xxx-xxx.compute-1.amazonaws.com
                ServerAdmin admin@mywebsite.com
                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>

Но я все еще получаю предупреждения, а путь apache python не изменился - где мне нужно поместить соответствующие директивы, чтобы указать apache на мою версию и модули python (например, scipy, numpy и т. Д.)?

Отдельно, можно ли этого избежать с помощью виртуальных сред?

Заранее спасибо.

РЕДАКТИРОВАТЬ №1:

Я бегал:

>>> import sys
>>> print sys.prefix

Получить:

/home/ubuntu/anaconda

И запуск ldd mod_wsgi.so с set / unset LD_LIBRARY_PATH дает ту же символическую ссылку

libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f13ca1c1000)

Это системная версия python, НЕ та, которую я хочу, и НЕ та, которую я скомпилировал mod_wsgi при запуске:

./configure --with-python=/home/ubuntu/anaconda/bin/python2.7

Разница в версии исправления обычно не имеет значения и объясняется в:

Более важно, каково значение sys.prefix, когда скрипты запускаются под mod_wsgi.

И какую разделяемую библиотеку Python фактически использует файл mod_wsgi.so, и правильно ли вы скомпилировали ее, чтобы гарантировать, что она подберет альтернативную общую библиотеку.

Если он действительно не выбирает правильную разделяемую библиотеку, то несоответствие может быть проблемой, и вам необходимо перекомпилировать mod_wsgi.

Прочтите документацию и выполните описанные там проверки вашей установки и при необходимости примите описанные там действия.