我正在尝试在PyGtk应用程序中嵌入python-shell。 我设法使用Vte.Terminal嵌入了bash终端,并希望复制相同的行为,但是要使用可访问我的应用程序对象的python3 shell。如果我将Vte.Terminal与'/usr/bin/python3.5'用作子进程,则由于它是一个不同的进程,所以我无法访问任何东西。
我试图通过使用Vte.Terminal来实现它,而没有子进程并自己对用户输入进行操作。我将看到的字符连接到字符串,然后通过调用'exec(command)'执行命令。不幸的是,那也不允许我访问任何内容。如果我定义了一个变量,然后在下一行中使用它,则该变量是未知的。我猜它在第一次调用exec的地方是局部的,并且由于处理输入的函数在使用该变量的第二行中再次调用,因此超出了范围。
此外,要实现这样的功能将需要进行大量工作,因为我必须实现每个特殊字符,光标移动,命令历史...,所有在Vte.Terminal中带有子Process的东西都很好。 / p>
Vte.Terminal中是否有我可以使用的选项?
更新:只是为了看看发生了什么,我做了以下工作:我分叉了我的过程,并将新过程的虚拟终端连接到了VTE小部件。这很好。显然,尽管我不能交换任何新数据,因为解释器再次在新进程中运行。我可以以某种方式使用线程吗?有没有办法将线程虚拟终端连接到VTE?