2011-08-20 86 views
2

我想将AsciiMath转换为MathML。我只想获取XML内容,但我不需要在浏览器上显示。MathDOM 0.8是否与Python 2.7兼容?

所以,我已经安装了MathDOM 0.8,LXML 2.3,pyparsing 1.5.6。我还没有安装PyXML,因为MathDOM使用PyXML lxml, pyparsing。

我然后运行在MathDOM目录三个例子如dom.py,infix.py和ldom.python。

dom.pyinfix.py输出一个错误:导入错误:没有模块命名元素

否则,ldom.py输出其他错误:AttributeError的: 'NoneType' 对象具有没有属性“setParseAction”

我也尝试安装的PyXML但我不能运行的例子了。

请帮帮我。

谢谢。

+0

你不用Python 2.7运行它,你用Python 3运行它。 – agf

+0

不,我从来没有安装Python 3 –

回答

0

MathDOM 0.8(安装模块mathmlworks only with the older pyparsing 1.4.2。 这里有一个方法可以覆盖旧版本pyparsing,只影响mathml。在Windows 7上测试Python 2.7:

  • 下载并解压缩MathDOM 0.8
  • 下载revision 68 of pyparsing.py(根据SVN版本1.4.2提交信息,但也有在库中没有标记),并将其保存在您提取的mathdom-0.8/mathml文件夹。这将优先于安装的pyparsing,但仅限于mathml包。
  • 导航到mathdom-0.8/并安装(例如,python setup.py installpip install .,或许附加--prefix=$HOME/usr或某些)。
  • python -c "from mathml import termparser"测试;它应该成功地在以前失败的地方使用AttributeError: 'NoneType' object has no attribute 'setParseAction'

    您也可以验证python -c "from mathml import pyparsing; print pyparsing.__version__"打印1.4.2,而python -c "import pyparsing; print pyparsing.__version__"打印1.5.6

希望这有助于!

1

我遇到了一模一样的问题 - 非常感谢你和乔恩·奥拉夫·维克为指向我在解决问题的方向。

我使用的是virtualenvpip,所以通过常规机制安装旧版本实际上比Jon描述的手动捆绑更可取。不幸的是,只是在做pip install pyparsing==1.4.2不起作用,但在SourceForge上指向pip肯定会。在一个行:

$ pip install http://downloads.sourceforge.net/project/pyparsing/pyparsing/pyparsing-1.4.2/pyparsing-1.4.2.tar.gz 
0

我正好面对pyparsing的蟒蛇2.7 matplotlib丢失在Windows 7我下载的压缩版本从https://pypi.python.org/pypi/pyparsing/1.5.7,提取,打开解压目录,我有建立内部命令提示符。 py和ran python setup.py install它的工作!唯一的额外的事情是我不得不将python位置添加到我的路径变量。像这样:set path=%path%+;C:\python27在执行前面的命令之前。