0

当我尝试从 python3 中的 psutil 模块访问属性时出现此错误

2016-05-17 18:15:44,216 BOOT                 pyom| Logging system initialized.
2016-05-17 18:15:44,279 BOOT                 pyom| Entering Game Loop
Traceback (most recent call last):
  File "/Users/duys/pyom/Rom24/pysrc/pyom.py", line 80, in <module>
    Pyom()
  File "/Users/duys/pyom/Rom24/pysrc/pyom.py", line 76, in Pyom
    game_loop(server)
  File "/Users/duys/pyom/Rom24/pysrc/comm.py", line 265, in game_loop
    start_snapshot = sys_utils.ResourceSnapshot()
  File "/Users/duys/pyom/Rom24/pysrc/sys_utils.py", line 29, in __init__
    proc_io = proc.io_counters()
AttributeError: 'Process' object has no attribute 'io_counters'

我不明白,因为我可以成功导入模块 psutils 并通过 psutil 浏览我找到方法 io_counters..

即使在我的 PyCharm 上设置一个项目也表明已经找到 io_counters,但是当我尝试运行它时,我得到了那个错误?

这是失败的代码片段:

import psutil
import logging
logger = logging.getLogger()


def sysTimeStamp(timeval):
    """
    Formats a raw time value into a formatted string in a standard format.

    :param timeval:
    :return:
    """
    return datetime.fromtimestamp(timeval).strftime("%Y-%m-%d %H:%M:%S")


class ResourceSnapshot:
    """
    Creates a snapshot of system information as an object.
    """
    def __init__(self):
        sysmem = psutil.virtual_memory()
        proc = psutil.Process()
        proc_io = proc.io_counters()

有人能指出我正确的方向吗?

4

1 回答 1

0

从以下文档Process.io_counters()

不支持 OSX。
[...]
可用性:除 OSX 和 Solaris 之外的所有平台

该属性不存在,因为您在 OS X 上执行脚本。请参阅源代码,如果底层平台特定的进程类具有该属性,则仅包含该方法。OS X 实现不提供它,因为操作系统本身不提供此信息。

于 2016-05-17T08:22:31.917 回答