Python 在一个环境中拒绝 text.replace()

标签 python apache replace pylons

我一直在 mock pylons 应用程序的以下一些脏支持代码,它在 python-shell、单独的 python 文件或在 paster 中运行时很好。现在,我们已经通过 mod_wsgi 和 apache 将应用程序联机,并且这段特定的代码完全停止工作。首先,代码本身:

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 文件),这反射(reflect)在日志输出中。

我目前不知所措,不知道下一步该去哪里。谷歌搜索并没有真正解决问题,所以我希望你们能提供帮助,或许还能指出使用 whatever-is-causing-this 的一个基本问题。

如果有什么遗漏,我会补上。

最佳答案

添加一些打印语句并检查 Apache 日志:

def fixStyle(self, text):
    print "text:", text
    print "STYLEDEF", STYLEDEF
    t = text.replace('<p>', '<p style="%s">' % (STYLEDEF,))
    print "t:", t

关于Python 在一个环境中拒绝 text.replace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195626/

相关文章:

c - Apache 模块中的静态变量被多次初始化?

php - 无法在我的 PHP 应用程序中包含名为 "config.php"的文件(它会被忽略)

python - 文件操作、查找单词和棘手的替换

python - 如何从 Django 应用程序创建一个轮子?

python - 时间复杂度: growing list in nested for-loops

php - RewriteEngine 开启 - 内部服务器错误

基于另一个向量替换向量中的值

php - preg_replace 如何在 PHP 中用 "包围字符串的 html 属性

python - 在python中递归退出矩形

python - 在Python中显示西里尔字母