Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module PYOS.get_terminal_size()不工作_Module_Operating System_Pycharm_Python 3.7 - Fatal编程技术网

Module PYOS.get_terminal_size()不工作

Module PYOS.get_terminal_size()不工作,module,operating-system,pycharm,python-3.7,Module,Operating System,Pycharm,Python 3.7,Ubuntu 18.04.2 LTS上的Python 3.7.1 使用Pycharm版本: PyCharm 2019.1.3 (Professional Edition) Build #PY-191.7479.30, built on May 30, 2019 Linux 4.18.0-22-generic 我在os.get\u terminal\u size()函数调用中遇到问题 从“终端”窗口运行命令可以: Python 3.7.1 (default, Oct 22 2018, 11:21

Ubuntu 18.04.2 LTS上的Python 3.7.1

使用Pycharm版本:

PyCharm 2019.1.3 (Professional Edition)
Build #PY-191.7479.30, built on May 30, 2019
Linux 4.18.0-22-generic
我在
os.get\u terminal\u size()函数调用中遇到问题

从“终端”窗口运行命令可以:

Python 3.7.1 (default, Oct 22 2018, 11:21:55) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.get_terminal_size()
os.terminal_size(columns=223, lines=18)
但是从Python控制台窗口运行它并不能

>>>import os
>>>os.get_terminal_size()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
OSError: [Errno 25] Inappropriate ioctl for device
导入操作系统 >>>操作系统获取终端大小() 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 OSError:[Errno 25]设备的ioctl不正确

我的谷歌搜索并没有针对我手头的问题提供太多信息。
OSError:[Errno 25]设备的ioctl不合适实际上意味着什么?我如何修复它?

您的Python实现依赖于终端是否符合操作系统对终端大小的请求。在中,
ioctl()
中的系统调用将失败,因为设备(终端)无法识别该命令。你可以试着设置

-Drun.processes.with.pty=true

帮助/编辑自定义虚拟机选项中…
根据答案。

您可以使用
shutil
代替
os
。这在Pycharm中没有任何问题(并且希望扩展到IntelliJ)

import shutil
terminal_size = shutil.get_terminal_size(fallback=(120, 50))
# attributes
print('cols=', terminal_size.columns)
print('rows=', terminal_size.rows)