Цент ОС + Apache2 + mod_wsgi ошибка

У меня есть сервер разработки для моего приложения Django, выполняющего Цент ОС 6. Я вручаю приложение с помощью Apache и mod_wsgi. Я читал много о Python по умолчанию, который идет с Центом и таким образом, я установил альтернативный Python 2.7.6 из источника и скомпилировал его с - включают - совместно использованный. Я также установил mod_wsgi из источника и указал на него на новую установку Python.

Однако каждый раз, когда я пытаюсь запустить приложение, я продолжаю получать следующую ошибку от lxml:

..lib/python2.7/site-packages/lxml/objectify.so: undefined symbol: PyUnicodeUCS2_Format

Другая известная вещь по ошибке состоит в том, что используемый исполняемый файл Python не является желаемым:

Python Executable:  /usr/bin/python

вместо/home/jenkins/local/bin/python

Я искал это в течение многих часов напрасно.

Как я могу решить это??Заранее спасибо.

0
задан 26 August 2014 в 00:38
2 ответа

Вы пытаетесь использовать версию lxml, скомпилированную для одной установки Python, для другой установки Python. Две установки Python не совпадают. В частности, один lxml был скомпилирован с 16-битной шириной символа Unicode, указанной при компиляции самого Python. Используемая среда выполнения Python была скомпилирована для 32 символов, но с шириной символа Unicode. Следовательно, это не удастся.

Вам необходимо проверить, какую разделяемую библиотеку Python mod_wsgi фактически использует во время выполнения и является ли она правильной. Чтобы узнать, как это сделать, см .:

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

Следующее, что вам нужно проверить, это то, что вы не указываете mod_wsgi использовать виртуальную среду Python, которая была создана для другого Установка Python отличается от того, что использует mod_wsgi.

И последнее, что вы можете сделать, это убедиться, что вы создаете свою собственную установку Python с 32-битными символами Unicode. Когда вы собираете Python из исходного кода, по умолчанию используется 16 бит. В Linux собственные установки Python дистрибутивов всегда компилируются для 32-битного Unicode, поэтому вы столкнулись с этой проблемой, когда начали смешивать установки Python.

1
ответ дан 5 December 2019 в 13:30

В apache установите путь к исполняемому файлу python с помощью директивы WSGIPythonHome :

WSGIPythonHome /home/jenkins/local/bin/
-1
ответ дан 5 December 2019 в 13:30

Теги

Похожие вопросы