我正在尝试运行名为cursesDb.py
的python文件,但出现错误。该文件导入curses库,但是当我使用sublime文本编辑器时,由于该文件/usr/lib/python3.7/curses/__init__.py
中发生错误,因此无法运行程序。我使用Linux Ubuntu 19作为操作系统。
有人可以告诉我如何解决这个问题?我是python的初学者,完全是这些行:
setupterm(term=_os.environ.get("TERM", "unknown")
**fd=_sys.__stdout__.fileno())**
当我在以下文字中生成ctr + b
时出现错误,如下所示:
_curses.error: setupterm: could not find terminal
谢谢!
我不了解curses模块,但也许您没有设置sublime文本来正确执行python。在youtube上查找有关“如何在Sublime Text 3 Ubuntu中设置python构建系统”的教程,然后尝试。如果仍然无法使用,请在bash中执行。
[请记住,我可能是错的,我对诅咒一无所知,但是当您说它有以下错误:
_curses.error: setupterm: could not find terminal
我认为这可能是执行方面的问题。
要以bash执行,请使用cd
导航到程序目录,然后键入chmod +x <filename>.py
,然后键入python3 <filename>.py
。这可能有效,但是请记住,这只是一个建议。
最有可能是由于curses
试图确定使用哪种终端类型来进行输出颜色和操纵光标位置之类的事实。
当您在Sublime Text中使用标准构建系统时,它所做的只是捕获程序的输出并将其转储到面板中;也就是说,它根本不是终端。因此,可能没有设置TERM
变量,即使存在它也没有意义,因为curses
无论如何都不会起作用。
在这方面的重要说明是Sublime用于转储输出的“哑终端”不接受输入,因此,如果您的程序希望从用户那里收集某种输入以执行某项操作,那也将失败。
要解决这两个问题,您可以执行以下操作:
打开sublime-build
文件,并在{ }
字符内添加以下键(可以在其中的任意位置使用。)>
"target": "terminus_exec",
"cancel": "terminus_cancel_build",
现在,当您运行构建时,Terminus将打开一个实际的终端并在其中运行您的代码。这更像curses
所期望的那种环境,如果您的程序需要以任何方式进行交互,则也需要这种环境。
如果需要,可以在making any build system interactive with Terminus的此视频中找到更多详细信息。如果不确定如何查找和打开所使用的构建文件,这可能会特别有用。