2014年5月7日水曜日

svgwriteのエラー

pythonでSVGファイルを生成する必要があったので、
svgwriteというモジュールをインストールしてみました。

インストールは簡単にできます。
pip install svgwrite
です。



サンプルを実行してみようとすると
エラー…

import下だけなのにエラーが出ました。
エラーメッセージを貼り付けると下のようにxml関連らしいです。

>>> import svgwrite
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python26\Lib\site-packages\svgwrite\__init__.py", line 51, in <module
>
    from svgwrite.drawing import Drawing
  File "c:\Python26\Lib\site-packages\svgwrite\drawing.py", line 29, in <module>

    from svgwrite.container import SVG, Defs
  File "c:\Python26\Lib\site-packages\svgwrite\container.py", line 27, in <modul
e>
    from svgwrite.base import BaseElement
  File "c:\Python26\Lib\site-packages\svgwrite\base.py", line 12, in <module>
    from svgwrite.etree import etree
  File "c:\Python26\Lib\site-packages\svgwrite\etree.py", line 33, in <module>
    original_serialize_xml = etree._serialize_xml
AttributeError: 'module' object has no attribute '_serialize_xml'


下のサイトを参考に少し修正しました。
https://bitbucket.org/mozman/svgwrite/pull-request/3/fix-etreepy/diff


pythonインストールフォルダに
Lib/site-packages
というフォルダがあります。
この下にいわゆるライブラリがインストールされます。

インストールされていれば、
この下にsvgwriteというフォルダが有ると思います。
その中にetree.py
というファイルがあるので、

33行目
original_serialize_xml = etree._serialize_xml

を削除して、最終行に移動します。
現状のエラーでは循環呼び出しをしてしまったらしいです。

これで、ひとまずimportは出来ました。

使い方などはまた次の機会にレポートします。



0 件のコメント:

コメントを投稿