我正在尝试运行python脚本但是没有识别属性但我可以导入psutil

时间:2016-05-17 08:17:05

标签: python python-3.x psutil

当我尝试从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()

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

1 个答案:

答案 0 :(得分:0)

来自documentation of Process.io_counters()

  

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

该属性不存在,因为您正在OS X上执行脚本。请参阅source code,如果底层平台特定的流程类具有该属性,则仅包含该方法。 OS X implementation没有提供,因为操作系统本身并不提供此信息。