я вырыл немного больше в коду следующего ответа Ондржи и нашел способ обойти ошибку:
Althoug призывающий:
ipython.interactive.init_session(ipython=None, auto_symbols=True, auto_int_to_Integer=True)
не работает в управлении IPython, в стандартной консоли Python он запускает сеанс IPython и инициализирует его, как ожидалось.
Причина, по которой он не работает с IPython, заключается в том, что основная часть работы по инициализации в init_session
выполняется при вызове ipython.interactive.session.init_ipython_session
. Однако init_session
проверяет, находится ли он уже в сеансе IPython и пропускает вызов init_ipython_session
, если он есть. Поскольку init_ipython_session
является первым значимым вещь init_ipython
может сделать, то проблема может быть решена явным вызовом init_ipython_session` первым:
from sympy.interactive import init_session
from sympy.interactive.session import init_ipython_session
init_ipython_session(auto_symbols=True, auto_int_to_Integer=True)
init_session(ipython=None, auto_symbols=True, auto_int_to_Integer=True)
Это ставит под управлением IPython сессии в нужный режим. Однако иналибация вступает в силу только в следующей «ячейке». Например, вставка вышеприведенного кода в консоль IPython вместе с кодом, который опирается на инициализацию, не удастся. Инициализация и код, основанный на ней, должны быть вставлены отдельно. В ноутбуке jupyter вышеуказанный код должен быть в отдельной ячейке.
Это ответ, но он не работает из-за ошибки https://github.com/sympy/sympy/issues/2839 –
Извините, что услышал это. По крайней мере, похоже, они работают над этим. –
Я не понимаю, как работает скрипт isympy. Я подтвердил, что 'sympy.interactive.init_session (ipython = True, auto_int_to_Integer = True, auto_symbols = True)' не имеет желаемого эффекта, но это все, что делает скрипт isympy. –