isympy
命令启动一个导入了sympy的解释器。我还可以提供这些选项以“交互模式”启动翻译:
-a, --auto-symbols automatically construct missing symbols
-i, --int-to-Integer automatically wrap int literals with Integer
-I, --interactive equivalent to -a -i
在标准Python或IPython解释器中导入Sympy后,有没有办法启用此模型? 这对于使用Jupyter笔记本非常有用。
答案 0 :(得分:2)
如果查看isympy
的源代码,您会发现它实际上只是将命令行选项解析为sympy.interactive.init_session()
函数的参数。因此,您可以在Jupyter笔记本会话中运行该函数,该会话也是restart the service programmatically。
答案 1 :(得分:0)
我根据Ondrej的回答挖了一些代码,然后找到解决问题的方法:
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控制台以及依赖于inirializations的代码将失败。 初始化和依赖它的代码必须分别粘贴。 在一个jupyter笔记本中,上面的代码必须在一个单独的单元格中。