PythonのPySDパッケージを使用してVensimモデルファイル(.mdl)を読み込もうとすると、次のエラーメッセージが表示されます。モデルファイルをPySDに読み込むときの解析エラーの理解
私のコードは次のとおりです。
import pysd
import os
os.chdir('path/to/model_file')
model = pysd.read_vensim('my_model.mdl')
私が受け取るエラーは次のとおりです。
Traceback (most recent call last):
Python Shell, prompt 13, line 1
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pysd/pysd.py", line 53, in read_vensim
py_model_file = translate_vensim(mdl_file)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pysd/vensim2py.py", line 673, in translate_vensim
entry.update(get_equation_components(entry['eqn']))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pysd/vensim2py.py", line 251, in get_equation_components
tree = parser.parse(equation_str)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/parsimonious/grammar.py", line 123, in parse
return self.default_rule.parse(text, pos=pos)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/parsimonious/expressions.py", line 110, in parse
node = self.match(text, pos=pos)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/parsimonious/expressions.py", line 127, in match
raise error
parsimonious.exceptions.ParseError: Rule 'subscriptlist' didn't match at '' (line 1, column 21).
私は、この特定のエラーで検索しましたし、私は「subscriptlist」の失敗のマッチングルールに多くの情報を見つけることができません。
洞察力に感謝します。ありがとうございました。
あなたのモデルはどのくらいの大きさですか?私たちの検査のためにここに表示するのに十分小さい? –
残念ながら、私が使用しようとしているモデルは非常に大きいです。しかし、Vensim(モデルファイルが作成されたシミュレーションソフトウェア)内でモデルを実行することによって生成される問題(つまり、エラーや警告)がないため、解決策を探し始める場所がわからない。どんな考え? – Cortney
OK、私はあなたを知らないので、怒らないでください。通常のデバッグ手法は、問題の原因となっている部分を見つけるために大きなコードを小さな断片に分割することです。それはできますか?または、違反行を分離するために、最後の近くのモデルのチャンクを省略できますか? –