Я издевался над следующим кусочком грязного кода поддержки для приложения pylons, который работает fine в оболочке python, отдельном файле python или при работе в пастере. Теперь мы разместили приложение в режиме онлайн через mod_wsgi и apache, и этот конкретный фрагмент кода полностью прекратил работу. Во-первых, сам код:Python отказывается от text.replace() в одной среде
def fixStyle(self, text):
t = text.replace('<p>', '<p style="%s">' % (STYLEDEF,))
t = t.replace('class="wide"', 'style="width: 125px; %s"' % (STYLEDEF,))
t = t.replace('<td>', '<td style="%s">' % (STYLEDEF,))
t = t.replace('<a ', '<a style="%s" ' % (LINKSTYLE,))
return t
Это кажется довольно простым, и, честно говоря, это так. Так что же происходит, когда я положил кусок текста в нем, например:
<table><tr><td>Test!</td></tr></table>
Вывод должен быть:
<table><tr><td style="stuff-from-styledef">Test!</td></tr></table>
и это, в большинстве систем. Когда мы помещаем его через приложение на Apache/mod_wsgi, хотя, происходит следующее:
<table><tr><td>Test!</td></tr></table>
Вы угадали.
Я поставил запись в начале вывода текста, а в конце вывод исходного текста и переменной t. Он отображает то, что я здесь представляю: в большинстве систем t изменено, в среде apache это не так.
Конечно, я обязательно перезапустил apache (чтобы загрузить его .py-файлы) после каждого изменения, и он отразился на выходе журнала.
Я сейчас в растерянности и понятия не имею, куда идти дальше. Googling на самом деле не работает, поэтому я надеюсь, что вы, ребята, поможете и, возможно, укажете на фундаментальную проблему с использованием чего бы то ни было.
Если что-то не хватает, я буду править его в
Ну ... Вы уверены, что apache использует правильную версию файла? –
Интересно, можете ли вы показать текстовое значение с помощью отладки (текста) в начале функции и отладки (t) в конце функции. Я подозреваю, что проблема здесь отсутствует –
Я добавил значения текста и t для ведения журнала (log.info ([текст, t, текст == t])) и ничего не изменилось. –