小编Mat*_*tic的帖子

如何在 PyCharm IDE 中使用子进程模块调用基于 ncurses 的应用程序?

我想使用 subprocess 模块从 python 启动一个基于 ncurses 的应用程序。

基于 ncurses 的应用程序是 TABARI,一个事件提取系统。事件提取的结果保存到文件中。我想从 python 脚本启动它,等待它终止,然后读取结果文件。

代码示例如下所示:

import subprocess
proc = subprocess.Popen('TABARI -a ' + file, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print proc.communicate()
Run Code Online (Sandbox Code Playgroud)

运行PyCharm程序时这段代码的结果是:

('', 'Error opening terminal: unknown.\n')
Run Code Online (Sandbox Code Playgroud)

当我从终端启动的 python 解释器(与 PyCharm 中使用的相同)运行相同的代码时,输​​出是:

('...lots of text...', '')
Run Code Online (Sandbox Code Playgroud)

我尝试了几件事,包括使用 shell=False,将 bufsize 设置为 -1,以及调查 os.environ 变量。PyCharm 的 os.environ 输出和终端之间的一个可疑差异是“TERM”变量,它在 PyCharm 中不存在,在终端中等于“xterm”。

我将不胜感激任何帮助。

python subprocess ncurses pycharm

5
推荐指数
1
解决办法
1284
查看次数

标签 统计

ncurses ×1

pycharm ×1

python ×1

subprocess ×1