Skip to main content

Cross-platform lib for process and system monitoring in Python.

Project description

Linux tests (Travis) Windows tests (Appveyor) Test coverage (coverall.io) Documentation Status Latest version Github stars License

Summary

psutil (process and system utilities) is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network, sensors) in Python. It is useful mainly for system monitoring, profiling and limiting process resources and management of running processes. It implements many functionalities offered by UNIX command line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap. psutil currently supports the following platforms:

  • Linux

  • Windows

  • OSX,

  • FreeBSD, OpenBSD, NetBSD

  • Sun Solaris

  • AIX

…both 32-bit and 64-bit architectures, with Python versions 2.6, 2.7, and 3.4+. PyPy is also known to work.

Example applications

https://github.com/giampaolo/psutil/blob/master/docs/_static/procinfo-small.png https://github.com/giampaolo/psutil/blob/master/docs/_static/top-small.png
https://github.com/giampaolo/psutil/blob/master/docs/_static/procsmem-small.png https://github.com/giampaolo/psutil/blob/master/docs/_static/pmap-small.png

Also see scripts directory and doc recipes.

Projects using psutil

At the time of writing psutil has roughly 2.9 milion downloads per month and there are over 8000 open source projects on github which depend from psutil. Here’s some I find particularly interesting:

Portings

Example usages

CPU

>>> import psutil
>>> psutil.cpu_times()
scputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540, iowait=629.59, irq=0.0, softirq=19.42, steal=0.0, guest=0, nice=0.0)
>>>
>>> for x in range(3):
...     psutil.cpu_percent(interval=1)
...
4.0
5.9
3.8
>>>
>>> for x in range(3):
...     psutil.cpu_percent(interval=1, percpu=True)
...
[4.0, 6.9, 3.7, 9.2]
[7.0, 8.5, 2.4, 2.1]
[1.2, 9.0, 9.9, 7.2]
>>>
>>> for x in range(3):
...     psutil.cpu_times_percent(interval=1, percpu=False)
...
scputimes(user=1.5, nice=0.0, system=0.5, idle=96.5, iowait=1.5, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=1.0, nice=0.0, system=0.0, idle=99.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=2.0, nice=0.0, system=0.0, idle=98.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
>>>
>>> psutil.cpu_count()
4
>>> psutil.cpu_count(logical=False)
2
>>>
>>> psutil.cpu_stats()
scpustats(ctx_switches=20455687, interrupts=6598984, soft_interrupts=2134212, syscalls=0)
>>>
>>> psutil.cpu_freq()
scpufreq(current=931.42925, min=800.0, max=3500.0)
>>>

Memory

>>> import psutil
>>> psutil.virtual_memory()
svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, active=4748992512, inactive=2758115328, buffers=790724608, cached=3500347392, shared=787554304)
>>> psutil.swap_memory()
sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944)
>>>

Disks

>>> import psutil
>>> psutil.disk_partitions()
[sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,nosuid'),
 sdiskpart(device='/dev/sda2', mountpoint='/home', fstype='ext, opts='rw')]
>>>
>>> psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
>>>
>>> psutil.disk_io_counters(perdisk=False)
sdiskio(read_count=719566, write_count=1082197, read_bytes=18626220032, write_bytes=24081764352, read_time=5023392, write_time=63199568, read_merged_count=619166, write_merged_count=812396, busy_time=4523412)
>>>

Network

>>> import psutil
>>> psutil.net_io_counters(pernic=True)
{'eth0': netio(bytes_sent=485291293, bytes_recv=6004858642, packets_sent=3251564, packets_recv=4787798, errin=0, errout=0, dropin=0, dropout=0),
 'lo': netio(bytes_sent=2838627, bytes_recv=2838627, packets_sent=30567, packets_recv=30567, errin=0, errout=0, dropin=0, dropout=0)}
>>>
>>> psutil.net_connections()
[sconn(fd=115, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED', pid=1254),
 sconn(fd=117, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=43761), raddr=addr(ip='72.14.234.100', port=80), status='CLOSING', pid=2987),
 sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=60759), raddr=addr(ip='72.14.234.104', port=80), status='ESTABLISHED', pid=None),
 sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=51314), raddr=addr(ip='72.14.234.83', port=443), status='SYN_SENT', pid=None)
 ...]
>>>
>>> psutil.net_if_addrs()
{'lo': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
        snicaddr(family=<AddressFamily.AF_INET6: 10>, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
        snicaddr(family=<AddressFamily.AF_LINK: 17>, address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', ptp=None)],
 'wlan0': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', ptp=None),
           snicaddr(family=<AddressFamily.AF_INET6: 10>, address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None),
           snicaddr(family=<AddressFamily.AF_LINK: 17>, address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', ptp=None)]}
>>>
>>> psutil.net_if_stats()
{'eth0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=100, mtu=1500),
 'lo': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_UNKNOWN: 0>, speed=0, mtu=65536)}
>>>

Sensors

>>> import psutil
>>> psutil.sensors_temperatures()
{'acpitz': [shwtemp(label='', current=47.0, high=103.0, critical=103.0)],
 'asus': [shwtemp(label='', current=47.0, high=None, critical=None)],
 'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0),
              shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),
              shwtemp(label='Core 1', current=52.0, high=100.0, critical=100.0),
              shwtemp(label='Core 2', current=45.0, high=100.0, critical=100.0),
              shwtemp(label='Core 3', current=47.0, high=100.0, critical=100.0)]}
>>>
>>> psutil.sensors_fans()
{'asus': [sfan(label='cpu_fan', current=3200)]}
>>>
>>> psutil.sensors_battery()
sbattery(percent=93, secsleft=16628, power_plugged=False)
>>>

Other system info

>>> import psutil
>>> psutil.users()
[suser(name='giampaolo', terminal='pts/2', host='localhost', started=1340737536.0, pid=1352),
 suser(name='giampaolo', terminal='pts/3', host='localhost', started=1340737792.0, pid=1788)]
>>>
>>> psutil.boot_time()
1365519115.0
>>>

Process management

>>> import psutil
>>> psutil.pids()
[1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224, 268, 1215, 1216, 1220, 1221, 1243, 1244,
 1301, 1601, 2237, 2355, 2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245, 4263, 4282,
 4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358, 4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446,
 5167, 5234, 5235, 5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]
>>>
>>> p = psutil.Process(7055)
>>> p.name()
'python'
>>> p.exe()
'/usr/bin/python'
>>> p.cwd()
'/home/giampaolo'
>>> p.cmdline()
['/usr/bin/python', 'main.py']
>>>
>>> p.pid
7055
>>> p.ppid()
7054
>>> p.parent()
<psutil.Process(pid=7054, name='bash') at 140008329539408>
>>> p.children()
[<psutil.Process(pid=8031, name='python') at 14020832451977>,
 <psutil.Process(pid=8044, name='python') at 19229444921932>]
>>>
>>> p.status()
'running'
>>> p.username()
'giampaolo'
>>> p.create_time()
1267551141.5019531
>>> p.terminal()
'/dev/pts/0'
>>>
>>> p.uids()
puids(real=1000, effective=1000, saved=1000)
>>> p.gids()
pgids(real=1000, effective=1000, saved=1000)
>>>
>>> p.cpu_times()
pcputimes(user=1.02, system=0.31, children_user=0.32, children_system=0.1)
>>> p.cpu_percent(interval=1.0)
12.1
>>> p.cpu_affinity()
[0, 1, 2, 3]
>>> p.cpu_affinity([0, 1])  # set
>>> p.cpu_num()
1
>>>
>>> p.memory_info()
pmem(rss=10915840, vms=67608576, shared=3313664, text=2310144, lib=0, data=7262208, dirty=0)
>>> p.memory_full_info()  # "real" USS memory usage (Linux, OSX, Win only)
pfullmem(rss=10199040, vms=52133888, shared=3887104, text=2867200, lib=0, data=5967872, dirty=0, uss=6545408, pss=6872064, swap=0)
>>> p.memory_percent()
0.7823
>>> p.memory_maps()
[pmmap_grouped(path='/lib/x8664-linux-gnu/libutil-2.15.so', rss=32768, size=2125824, pss=32768, shared_clean=0, shared_dirty=0, private_clean=20480, private_dirty=12288, referenced=32768, anonymous=12288, swap=0),
 pmmap_grouped(path='/lib/x8664-linux-gnu/libc-2.15.so', rss=3821568, size=3842048, pss=3821568, shared_clean=0, shared_dirty=0, private_clean=0, private_dirty=3821568, referenced=3575808, anonymous=3821568, swap=0),
 pmmap_grouped(path='/lib/x8664-linux-gnu/libcrypto.so.0.1', rss=34124, rss=32768, size=2134016, pss=15360, shared_clean=24576, shared_dirty=0, private_clean=0, private_dirty=8192, referenced=24576, anonymous=8192, swap=0),
 pmmap_grouped(path='[heap]',  rss=32768, size=139264, pss=32768, shared_clean=0, shared_dirty=0, private_clean=0, private_dirty=32768, referenced=32768, anonymous=32768, swap=0),
 pmmap_grouped(path='[stack]', rss=2465792, size=2494464, pss=2465792, shared_clean=0, shared_dirty=0, private_clean=0, private_dirty=2465792, referenced=2277376, anonymous=2465792, swap=0),
 ...]
>>>
>>> p.io_counters()
pio(read_count=478001, write_count=59371, read_bytes=700416, write_bytes=69632, read_chars=456232, write_chars=517543)
>>>
>>> p.open_files()
[popenfile(path='/home/giampaolo/svn/psutil/setup.py', fd=3, position=0, mode='r', flags=32768),
 popenfile(path='/var/log/monitd', fd=4, position=235542, mode='a', flags=33793)]
>>>
>>> p.connections()
[pconn(fd=115, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED'),
 pconn(fd=117, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=43761), raddr=addr(ip='72.14.234.100', port=80), status='CLOSING'),
 pconn(fd=119, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=60759), raddr=addr(ip='72.14.234.104', port=80), status='ESTABLISHED'),
 pconn(fd=123, family=<AddressFamily.AF_INET: 2>, type=<SocketType.SOCK_STREAM: 1>, laddr=addr(ip='10.0.0.1', port=51314), raddr=addr(ip='72.14.234.83', port=443), status='SYN_SENT')]
>>>
>>> p.num_threads()
4
>>> p.num_fds()
8
>>> p.threads()
[pthread(id=5234, user_time=22.5, system_time=9.2891),
 pthread(id=5235, user_time=0.0, system_time=0.0),
 pthread(id=5236, user_time=0.0, system_time=0.0),
 pthread(id=5237, user_time=0.0707, system_time=1.1)]
>>>
>>> p.num_ctx_switches()
pctxsw(voluntary=78, involuntary=19)
>>>
>>> p.nice()
0
>>> p.nice(10)  # set
>>>
>>> p.ionice(psutil.IOPRIO_CLASS_IDLE)  # IO priority (Win and Linux only)
>>> p.ionice()
pionice(ioclass=<IOPriority.IOPRIO_CLASS_IDLE: 3>, value=0)
>>>
>>> p.rlimit(psutil.RLIMIT_NOFILE, (5, 5))  # set resource limits (Linux only)
>>> p.rlimit(psutil.RLIMIT_NOFILE)
(5, 5)
>>>
>>> p.environ()
{'LC_PAPER': 'it_IT.UTF-8', 'SHELL': '/bin/bash', 'GREP_OPTIONS': '--color=auto',
'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg', 'COLORTERM': 'gnome-terminal',
 ...}
>>>
>>> p.as_dict()
{'status': 'running', 'num_ctx_switches': pctxsw(voluntary=63, involuntary=1), 'pid': 5457, ...}
>>> p.is_running()
True
>>> p.suspend()
>>> p.resume()
>>>
>>> p.terminate()
>>> p.wait(timeout=3)
0
>>>
>>> psutil.test()
USER         PID %CPU %MEM     VSZ     RSS TTY        START    TIME  COMMAND
root           1  0.0  0.0   24584    2240            Jun17   00:00  init
root           2  0.0  0.0       0       0            Jun17   00:00  kthreadd
root           3  0.0  0.0       0       0            Jun17   00:05  ksoftirqd/0
...
giampaolo  31475  0.0  0.0   20760    3024 /dev/pts/0 Jun19   00:00  python2.4
giampaolo  31721  0.0  2.2  773060  181896            00:04   10:30  chrome
root       31763  0.0  0.0       0       0            00:05   00:00  kworker/0:1
>>>

Further process APIs

>>> import psutil
>>> for proc in psutil.process_iter(attrs=['pid', 'name']):
...     print(proc.info)
...
{'pid': 1, 'name': 'systemd'}
{'pid': 2, 'name': 'kthreadd'}
{'pid': 3, 'name': 'ksoftirqd/0'}
...
>>>
>>> psutil.pid_exists(3)
True
>>>
>>> def on_terminate(proc):
...     print("process {} terminated".format(proc))
...
>>> # waits for multiple processes to terminate
>>> gone, alive = psutil.wait_procs(procs_list, timeout=3, callback=on_terminate)
>>>

Popen wrapper:

>>> import psutil
>>> from subprocess import PIPE
>>> p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"], stdout=PIPE)
>>> p.name()
'python'
>>> p.username()
'giampaolo'
>>> p.communicate()
('hello\n', None)
>>> p.wait(timeout=2)
0
>>>

Windows services

>>> list(psutil.win_service_iter())
[<WindowsService(name='AeLookupSvc', display_name='Application Experience') at 38850096>,
 <WindowsService(name='ALG', display_name='Application Layer Gateway Service') at 38850128>,
 <WindowsService(name='APNMCP', display_name='Ask Update Service') at 38850160>,
 <WindowsService(name='AppIDSvc', display_name='Application Identity') at 38850192>,
 ...]
>>> s = psutil.win_service_get('alg')
>>> s.as_dict()
{'binpath': 'C:\\Windows\\System32\\alg.exe',
 'description': 'Provides support for 3rd party protocol plug-ins for Internet Connection Sharing',
 'display_name': 'Application Layer Gateway Service',
 'name': 'alg',
 'pid': None,
 'start_type': 'manual',
 'status': 'stopped',
 'username': 'NT AUTHORITY\\LocalService'}

Other samples

See doc recipes.

Author

psutil was created and is maintained by Giampaolo Rodola’. A lot of time and effort went into making psutil as it is right now. If you feel psutil is useful to you or your business and want to support its future development please consider donating me (Giampaolo) some money.

Donate via PayPal

Don’t want to donate money? Then maybe you could write me a recommendation on Linkedin.

Release history Release notifications | RSS feed

This version

5.4.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psutil-5.4.6.tar.gz (418.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

psutil-5.4.6-cp37-cp37m-win_amd64.whl (224.3 kB view details)

Uploaded CPython 3.7mWindows x86-64

psutil-5.4.6-cp37-cp37m-win32.whl (219.9 kB view details)

Uploaded CPython 3.7mWindows x86

psutil-5.4.6-cp36-cp36m-win_amd64.whl (222.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

psutil-5.4.6-cp36-cp36m-win32.whl (219.0 kB view details)

Uploaded CPython 3.6mWindows x86

psutil-5.4.6-cp35-cp35m-win_amd64.whl (222.5 kB view details)

Uploaded CPython 3.5mWindows x86-64

psutil-5.4.6-cp35-cp35m-win32.whl (219.1 kB view details)

Uploaded CPython 3.5mWindows x86

psutil-5.4.6-cp34-cp34m-win_amd64.whl (219.3 kB view details)

Uploaded CPython 3.4mWindows x86-64

psutil-5.4.6-cp34-cp34m-win32.whl (216.5 kB view details)

Uploaded CPython 3.4mWindows x86

psutil-5.4.6-cp27-none-win_amd64.whl (219.5 kB view details)

Uploaded CPython 2.7Windows x86-64

psutil-5.4.6-cp27-none-win32.whl (216.5 kB view details)

Uploaded CPython 2.7Windows x86

File details

Details for the file psutil-5.4.6.tar.gz.

File metadata

  • Download URL: psutil-5.4.6.tar.gz
  • Upload date:
  • Size: 418.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for psutil-5.4.6.tar.gz
Algorithm Hash digest
SHA256 686e5a35fe4c0acc25f3466c32e716f2d498aaae7b7edc03e2305b682226bcf6
MD5 200e073cdd56cc7a9ba9a06088569200
BLAKE2b-256 519e0f8f5423ce28c9109807024f7bdde776ed0b1161de20b408875de7e030c3

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7fdb3d02bfd68f508e6745021311a4a4dbfec53fca03721474e985f310e249ba
MD5 2863c70af9a8b6e1f1fe0b80bf24568d
BLAKE2b-256 b1be78f9d786bddc190c4b394a01531741a11b95f1522cf2759958f13b46407f

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp37-cp37m-win32.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 6d981b4d863b20c8ceed98b8ac3d1ca7f96d28707a80845d360fa69c8fc2c44b
MD5 c185140d0e67eb53e875dfd6b82fa3f5
BLAKE2b-256 7a6228923c44954b6cf8aee637f3a2f30e0e1ff39ec0f74a4f98069d37f00751

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 a9b85b335b40a528a8e2a6b549592138de8429c6296e7361892958956e6a73cf
MD5 050a090b1dc163881140bb3812bd61ab
BLAKE2b-256 364b80d9eb5d39ec4b4d8aec8b098b5097a7291de20bbbe6c2ab233b9d8fe245

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 254adb6a27c888f141d2a6032ae231d8ed4fc5f7583b4c825e5f7d7c78d26d2e
MD5 ba625e32c4b0740eada772d79f33a8ab
BLAKE2b-256 d6e00f1b4f61246c4e2b540898b1ca0fa51ee2f52f0366956974f1039e00ed67

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 529ae235896efb99a6f77653a7138273ab701ec9f0343a1f5030945108dee3c4
MD5 ba2c317cdea2e39cb714830282bc813f
BLAKE2b-256 e321f82f270326e098f211bcc36cbb2ae7100732dcad03bd324e6af8c9d7e407

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 7f4616bcb44a6afda930cfc40215e5e9fa7c6896e683b287c771c937712fbe2f
MD5 6d27da3fad6243189abbefd0be79bd0a
BLAKE2b-256 004d194ec701de80c704f679bf78495c054994cc403884ffec816787813c4fde

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 dc85fad15ef98103ecc047a0d81b55bbf5fe1b03313b96e883acc2e2fa87ed5c
MD5 6d465ded6a5541a0fe74b6e415f651ec
BLAKE2b-256 a50d40b552c2c089523df1f7ab5a0249fbf90cb2e80e89177b0189e41e367adc

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 0ff2b16e9045d01edb1dd10d7fbcc184012e37f6cd38029e959f2be9c6223f50
MD5 1083e42d31344a09b9fe6aad8e2e1337
BLAKE2b-256 f9fa966988e350306e1a1a9024e77ad5f118cbfe11318e8bdfc258c3d5a1c68b

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp27-none-win_amd64.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp27-none-win_amd64.whl
Algorithm Hash digest
SHA256 7789885a72aa3075d28d028236eb3f2b84d908f81d38ad41769a6ddc2fd81b7c
MD5 797146029a64cf7398b7250c9f0706bc
BLAKE2b-256 c22322df1d36dc8ae002e9f646f9ed06b4f6bfbc7a22b67804c3a497be21d002

See more details on using hashes here.

File details

Details for the file psutil-5.4.6-cp27-none-win32.whl.

File metadata

File hashes

Hashes for psutil-5.4.6-cp27-none-win32.whl
Algorithm Hash digest
SHA256 319e12f6bae4d4d988fbff3bed792953fa3b44c791f085b0a1a230f755671ef7
MD5 1766fe4a51e09acdc3b47a16f4de3219
BLAKE2b-256 b40082c9fb4ffca22f2f6d0d883469584cd0cff71a604a19809015045b1fbab6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page