gpt4 book ai didi

python - 如何将IPython shell嵌入到使用curses模块的Python程序中?

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:11 25 4
gpt4 key购买 nike

当我在诅咒程序中按“i”时,我试图进入 IPython shell。到目前为止,我设置了一个curses 窗口和几个其他窗口。我可以使用 while 循环与程序交互并根据击键进行操作。

来自Embedding IPython我借用了一些代码,您可以在 block 的开头和结尾看到这些代码。

...

from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()

...

def main():

stdscr = curses.initscr()

(win_maxy, win_maxx) = stdscr.getmaxyx()

onethirds_win_width = int(math.floor(win_maxx/3))
half_win_heigth = int(math.floor(win_maxy/2))

begin_x = 0; begin_y = 0
height = half_win_heigth ; width = onethirds_win_width
download_win = curses.newwin(height, width, begin_y, begin_x)
download_win.border()
download_win.refresh()
download_list_win = download_win.subwin(height-2, width-2, begin_y+1, begin_x+1)

begin_x = (half_win_heigth-1)+2 ; begin_y = 0
height = half_win_heigth ; width = onethirds_win_width
configs_win = curses.newwin(height, width, begin_y, begin_x)
configs_win.border()
configs_win.refresh()
configs_list_win = configs_win.subwin(height-2, width-2, begin_y+1, begin_x+1)

begin_x = 0 ; begin_y = win_maxy-1
height = 1 ; width = win_maxx
status_win = curses.newwin(height, width, begin_y, begin_x)

begin_x = 0 ; begin_y = half_win_heigth+2
height = 1 ; width = win_maxx
input_win = curses.newwin(height, width, begin_y, begin_x)
input_win_textbox = curses.textpad.Textbox(input_win)
#curses.textpad.rectangle(stdscr, begin_y, begin_x, begin_y+height+1, begin_x+width+1)

curses.noecho()
curses.cbreak()
stdscr.keypad(1)

stdscr.addstr(half_win_heigth+5, 5, "MCP Fetcher. Ready.")
stdscr.refresh()

while 1:
c = stdscr.getch()
download_win.border()
if c == ord('q'): break # Exit the while()
elif c == ord('c'): stdscr.clear() # Clear the screen
elif c == ord('i'):
curses.nocbreak(); stdscr.keypad(0); curses.echo()
ipshell() # Start the ipython shell
curses.noecho(); curses.cbreak(); stdscr.keypad(1)

...

代码继续。

问题是IPython shell没有echo,没有cbreak等。我该如何解决这个问题?

谢谢

最佳答案

这里有一个可能有帮助的技巧:Working with curses in IPython. How can I improve this?

...它有一些问题,但基本功能已经有了。

关于python - 如何将IPython shell嵌入到使用curses模块的Python程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com