Я использую sympy 1.3 с python 3.6.6 и пытаюсь использовать sympy_parser.parse_expr
для создания выражения sympy из строки. Выполнение этого с 'zeta'
работает нормально, но использование 'zeta + 1'
дает ошибку типа:
File "/home/user/.local/lib/python3.6/site-packages/sympy/core/expr.py", line 1023, in as_terms
coeff, _term = term.as_coeff_Mul()
TypeError: as_coeff_Mul() missing 1 required positional argument: 'self'
Вот как создать это сообщение:
from sympy.parsing.sympy_parser import parse_expr
parse_expr('zeta+1')
Я думаю, что это интерпретирует zeta
как функцию (сообщение об ошибке мне неясно). Я также попытался установить global_dict
следующим образом: parse_expr('zeta+1', global_dict={})
, но затем произойдет сбой, поскольку он говорит, что Symbol
не определен. Я могу пройти и добавить Symbol
(и Integer
) к своему пользовательскому global_dict
, а затем он анализируется правильно, но мне это кажется уродливым (мне также нужно было бы добавить другие для поддержки общих выражений, таких как Float
).
Есть ли более чистый способ сделать это?