2024-10-01 13:28:04 发布
网友
我正在用Python制作一个科学实验室,用户可以在其中创建、修改和分析各种对象。我想在程序中放一个pythonshell,这样用户就可以通过shell操作对象了。(注意:他还可以通过通常的GUI操作对象。)
一个可以说明这一点的模型: http://cool-rr.com/physicsthing/physicsthing_mockup_thumb.gif
我怎么能做这种事?在
我考虑过使用eval,但我明白eval不能处理import。在
eval
import
根据您的GUI框架,可能已经完成了:
spyder
下面是我在应用程序中嵌入pycrast的方法:
import wx.py.crust ... ... # then call crustFrame = wx.py.crust.CrustFrame(parent = self) crustFrame.Show()
这里的self指的是我的主框架(源自wx.Frame)。这将创建一个在应用程序中运行的pyshell窗口,允许您检查主框架中存储的所有内容(因为self)。在
self
wx.Frame
FWIW,我相信enhough已经编写了类似这样的东西,用于他们基于Python的(和基于NumPy的)可视化套件。两年前,我看到了一个演示,其中确实允许您通过GUI或Python解释器直接操作对象。在
此外,要添加到第一个答案,您可能需要子类code.InteractiveConsole重写自我阅读()和自写(),因此它们与GUI交互。你还得重新定向系统标准输出以及系统标准写入同一控制台的某个可写类。在
你在找code - Interpreter base classes,尤其是代码.交互(). 在
一些examples from effbot。在
根据您的GUI框架,可能已经完成了:
spyder
)下面是我在应用程序中嵌入pycrast的方法:
这里的
self
指的是我的主框架(源自wx.Frame
)。这将创建一个在应用程序中运行的pyshell窗口,允许您检查主框架中存储的所有内容(因为self
)。在FWIW,我相信enhough已经编写了类似这样的东西,用于他们基于Python的(和基于NumPy的)可视化套件。两年前,我看到了一个演示,其中确实允许您通过GUI或Python解释器直接操作对象。在
此外,要添加到第一个答案,您可能需要子类code.InteractiveConsole重写自我阅读()和自写(),因此它们与GUI交互。你还得重新定向系统标准输出以及系统标准写入同一控制台的某个可写类。在
你在找code - Interpreter base classes,尤其是代码.交互(). 在
一些examples from effbot。在
相关问题 更多 >
编程相关推荐