55425


Pythonのsympyモジュールのsympy.printing.mathmlを使用しています。

Python3.6で、以下のtest1.pyを実行すると、エラーが起きてしまいます。

**test1.py**

[code]

    import sys, json
    from sympy import *
    from sympy.printing.mathml import mathml
    
    print(mathml(1/6))
    
[/code]

**test1.pyの実行結果(エラーの内容)**

[code]

    $ python test1.py
    
        Traceback (most recent call last):
          File "test1.py", line 5, in <module>
            print(mathml("1/6"))
          File "/home/vagrant/.pyenv/versions/3.6.7/lib/python3.6/site-packages/sympy/printing/mathml.py", line 1906, in mathml
            return MathMLContentPrinter(settings).doprint(expr)
          File "/home/vagrant/.pyenv/versions/3.6.7/lib/python3.6/site-packages/sympy/printing/mathml.py", line 68, in doprint
            unistr = mathML.toxml()
        AttributeError: 'str' object has no attribute 'toxml'
    
[/code]

test2.pyのように分数のない単純な状態で実行すると、Python3.6でもエラーは起きません。

**test2.py**

[code]

    import sys, json
    from sympy import *
    from sympy.printing.mathml import mathml
    
    print(mathml(1))
    
[/code]

Python2.7を使用していた時には、このようなエラーがありませんでした。Python3.6に切り替えてから起こるようになりました。  
分数表記に限らず、全体的にPython3.6ではsympy.printing.mathmlでエラーが起きるようになっている気がします。  
何が原因で、どうすればエラーなく実行できるようになりますでしょうか？

Sympyのバージョンは1.4です。  
Windows10にVirtualBoxとVagrantをインストールし、Ubuntuの仮想環境を構築して開発しています。Ubuntuのバージョンが14だったのが問題かと思い、16.04.6
LTSにアップデートしてみましたが関係なくエラーが出続けています。


CC BY-SA 4.0
2019-05-30T13:25:43.580
55375
2019-06-01T05:50:37.017
2019-06-01T05:50:37.017
3060
22541
question
python python3 sympy mathjax
Python3.6にアップデートしたら、Python2.7で使えてたものが動作しなくなった


コメント欄で教えて頂いた内容で

[code]

    from sympy import *
    from sympy.printing.mathml import mathml
    
    print(mathml(sympify("1/6")))
    
[/code]

とすると、通りました。


CC BY-SA 4.0
2019-06-01T05:46:24.737
55425
2019-06-01T05:46:24.737
22541
55375
answer