0

首先:我不是 python 程序员,我只想在 linux 主机上运行 OSQA 的默认安装。我的托管服务提供商为我安装了它,并且 OSQA 正在处理一个(但严重的)错误 - 如果我尝试在文本中发布带有 URL 的问题/答案/评论(http://www.whatever.com/whatever) -添加了空帖子(根本没有文字),并且此错误出现在日志中:

/data/web/slovensko20.sk/web/forum/models/node.py 时间:2012-02-05 23:29:14,944 味精:node.py:_as_markdown:34 捕获的异常“模块”对象没有属性“etree” ' 在 markdown 解析器渲染中答案 ​​'module' 对象没有属性 'etree':\s Traceback (最近一次调用最后):
  _as_markdown 中的文件“/data/web/slovensko20.sk/web/forum/models/node.py”,第 30 行
    return mark_safe(sanitize_html(markdown.markdown(content, extensions=extensions)))
  文件“build/bdist.linux-x86_64/egg/markdown/__init__.py”,第 396 行,在 markdown
  转换中的文件“build/bdist.linux-x86_64/egg/markdown/__init__.py”,第 287 行
  运行中的文件“build/bdist.linux-x86_64/egg/markdown/treeprocessors.py”,第 289 行
    文本),孩子)
  文件“build/bdist.linux-x86_64/egg/markdown/treeprocessors.py”,第 110 行,在 __handleInline
    数据、模式索引、开始索引)
  __applyPattern 中的文件“build/bdist.linux-x86_64/egg/markdown/treeprocessors.py”,第 237 行
    节点 = pattern.handleMatch(匹配)
  文件“/data/web/slovensko20.sk/web/forum/markdownext/mdx_urlize.py”,第 27 行,在 handleMatch 中
    el = markdown.etree.Element("a")
AttributeError:“模块”对象没有属性“etree”

我试图用谷歌搜索它,但没有运气。

OSQA 是 Fantasy Island (v0.9.0) Beta 3,Django 在版本 1.3.1 afaik。

谢谢你的帮助!

4

1 回答 1

1

Python-Markdown 新版本似乎将 etree/AtomicString 移至 markdown.util,因此您可以尝试此解决方法,修改 mdx_urlize.py

try:
    from markdown.util import etree
## replace markdown.etree with just etree

#el = markdown.etree.Element("a")
el = etree.Element("a")

## replace markdown.AtomicString with markdown.util.AtomicString

#el.text = markdown.AtomicString(text)
el.text = markdown.util.AtomicString(text)

您也可以将此补丁作为参考。

于 2012-02-15T02:25:05.353 回答