0

我使用 Eclipse 和 PyDev 编写了以下基本的 python 诅咒应用程序。

#!/usr/bin/python

import curses

myscreen = curses.initscr()
curses.noecho()
curses.curs_set(0)
myscreen.keypad(1) 

myscreen.border(0)
myscreen.addstr(12, 25, "Python Curses")
myscreen.refresh()

while True:
    event = myscreen.getch()
    if event == ord("q"): break
    if event == ord("a"):
        myscreen.addstr(12, 25, "You Pressed A")
        myscreen.refresh()
    if event == ord("b"):
        myscreen.addstr(12, 25, "You Pressed B")
        myscreen.refresh()

curses.endwin()

该程序在 linux 终端中运行良好,但是当我尝试在 Eclipse PyDev 中运行它时抛出一个错误“curses.curs_set(0) _curses.error: curs_set() returned ERR”如果我删除该行,我最终会得到很多破折号,它等待输入。

是否可以在 Eclipse 中调试 python curses 代码,或者他们的另一个 IDE 是否更适合 python curses 开发?

诅咒也适用于交互式控制台应用程序吗?(我希望做的不仅仅是基本的用户输入,可以通过 readlines 完成。)

4

3 回答 3

3

由于 PyDev 没有真正的终端替代品(即:控制台输出不是真正的 tty),您必须在终端中从外部启动程序并使用远程调试器进行调试。请参阅: http: //pydev.org/manual_adv_remote_debugger.html

请注意,您可以在 Eclipse 中配置外部启动以启动用于启动程序的外部 shell。

于 2012-09-03T11:08:13.687 回答
2

感谢法比奥的回答。这对我有用,但是 PyDev 手册“远程调试器”页面并没有让它变得非常简单,所以这是我必须做的额外工作。

我必须先将插件“pysrc”目录放在我的 PyDev PYTHONPATH 中,否则提到的 PyDev 调试服务器按钮不可用(我想我还必须重新启动 Eclipse)。

将 pysrc 目录放入您的 PYTHONPATH

我在 Windows 上的 cygwin 下使用 python 来开发我的 curses 应用程序,所以我设置了一个外部工具配置(再次按照 Fabio 的建议)来打开 MinTTY 并从 bash 脚本运行我的 python 程序。bash 脚本还包含一个睡眠,所以我可以看到任何退出错误。

设置外部工具运行

还要设置 2 个环境变量:INSIDE_PYDEV_DEBUGGER(这将告诉我的应用程序联系调试服务器)和 PYTHONPATH 以及它需要的插件模块的目录。

设置外部工具环境变量

然后在我的python程序开始时我放了:

import os
if 'INSIDE_PYDEV_DEBUGGER' in os.environ:
    import pydevd
    pydevd.settrace()

然后我启动 PyDev 调试服务器并运行外部工具,终端打开,程序在调试器中停止。

于 2014-08-02T20:32:51.480 回答
0

尝试使用凯特。它是带有内置终端仿真器的程序员文本编辑器,因此 curses 应该可以正常工作。

于 2012-09-01T03:08:22.533 回答