Displaying system information using psutil

  • Context: Python 
  • Thread starter Thread starter zak100
  • Start date Start date
  • Tags Tags
    Information System
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 5K views
zak100
Messages
462
Reaction score
11
TL;DR
I am trying to display system information. I found some commands but I am getting a sytax error
Hi,
I am getting following error message:
Traceback (most recent call last):
File "/home/zulfi/PycharmProjects/Classes/psutilPrintInfo.py", line 31, in <module>
obj_Counting_SysInfo.main()
File "/home/zulfi/PycharmProjects/Classes/psutilPrintInfo.py", line 27, in main
self.system_info()
File "/home/zulfi/PycharmProjects/Classes/psutilPrintInfo.py", line 16, in system_info
mem = process.get_memory_info()[0] / float(2 ** 30) # memory in GB
AttributeError: 'Process' object has no attribute 'get_memory_info'

I have written the following code which should display the system information of a simple program which I am running as a function:
Python:
import psutil

import osclass Counting_SysInfo:

    def __init__(self, i):

        self.i = i    def Print_Numbers(self):

        for i in range(50):

            print (i)    def system_info(self):

        # return the memory usage in MB

        self.Print_Numbers()

        process = psutil.Process(os.getpid())

        mem = process.get_memory_info()[0] / float(2 ** 30)  # memory in GB

        cpu = process.cpu_percent() / psutil.cpu_count()

        disk = process.disk_usage(part.mountpoint).percent  # https://github.com/giampaolo/psutil/blob/master/scripts/disk_usage.py

        vMem = int(process.virtual_memory().available)

        print(process.memory_info().rss)  # in bytes

        RSS = process.memory_info().rss

        # https://stackoverflow.com/questions/17990227/whats-the-unit-of-rss-in-psutil-process-get-memory-info

        pageFaults = process.memory_info().pfaults  # https://readthedocs.org/projects/giamptest/downloads/pdf/latest/

        print("mem= ", mem, "cpu= ", cpu, 'disk= ',disk, "VMem= ", vMem, "RSS= ", RSS, "page faults=", pageFaults )    def main(self):

        self.system_info()if __name__ == "__main__":

    obj_Counting_SysInfo = Counting_SysInfo(10)

    obj_Counting_SysInfo.main()

Somebody please guide me how to solve this problem.

Zulfi.
 
on Phys.org
Looking at the documentation for the Process class in psutil, there is no member named get_memory_info, which is exactly what the error message says. The Process class apparently has a member named memory_info().
 
  • Like
Likes   Reactions: sysprog and pbuk
Hi,
Thanks, I solved the above but I am getting cpu utilization zero.

Code:
def systeminfo(self):
        print("memory usage=", psutil.Process(os.getpid()).memory_info()[0])
        print(psutil.disk_usage('/'))
        print(psutil.Process(os.getpid()).cpu_percent(interval=1))
        print("virtual mem= ", psutil.virtual_memory().available)
        # print(psutil.Process(os.getpid()).memory_info().pfaults)
        print("rss=", psutil.Process(os.getpid()).memory_info().rss)
        self.selectionSort()
        print(psutil.Process(os.getpid()).cpu_percent(interval=1))    def main(self):
        self.generate1000_5digit_RandomNum()
        self.systeminfo()if __name__ == "__main__":
    objSSSort = SSSort(1000)
    objSSSort.main()

I am trying with 1000 elements in the sorting list:

Following is one portion of my output:
memory usage= 15269888
sdiskusage(total=982900588544, used=141417086976, free=791483416576, percent=15.2)
0.0
virtual mem= 12050067456
rss= 15269888
(0, 10000)
Somebody please guide me.

Zulfi.