我已经嵌入了 QTConsole
与 Ipython
. 当我试着通过以下方式渲染对象时,一切都很正常 IPython
在LinuxUbuntu中,但在Win10中,它不能被渲染。
尽管在win10上我可以在一个单独的窗口中渲染任何其他对象。
这是我的代码片段。
def run_embedded(theQueue):
param=theQueue.get()
handler=param[0]
connection_file=param[1]
handler.create_ui(connection_file)
def embed(handler):
connection_file = os.path.join(
tempfile.gettempdir(),
'connection-{:d}.json'.format(os.getpid()))
try:
param=(handler, connection_file)
m=multiprocessing.Manager()
queue=m.Queue()
queue.put(param)
p=Pool(processes=2)
p.map_async(run_embedded,(queue,))
IPython.embed_kernel(
local_ns=sys._getframe(1).f_locals,
connection_file=connection_file,
# gui='qt4',
)
finally:
try:
os.unlink(connection_file)
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
class numManager(BaseManager):
pass
numManager.register('Handler', Handler)
def main():
m = multiprocessing.Manager()
mymanager = numManager()
mymanager.start()
handler = mymanager.Handler()
embed(handler)
if __name__ == "__main__":
main()
最后,我通过使用Kernel Manager来处理我的进程来解决我的问题。