This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.

If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).

Module: utils.sysinfo

Utilities for getting information about IPython and the system it’s running in.

5 Functions

IPython.utils.sysinfo.pkg_commit_hash(pkg_path: str) tuple[str, str]

Get short form of commit hash given directory pkg_path

We get the commit hash from (in order of preference):

  • IPython.utils._sysinfo.commit

  • git output, if we are in a git repository

If these fail, we return a not-found placeholder tuple


pkg_path (str) – directory containing package only used for getting commit from active repo


  • hash_from (str) – Where we got the hash from - description

  • hash_str (str) – short form of hash

IPython.utils.sysinfo.pkg_info(pkg_path: str) dict

Return dict describing the context of this package


pkg_path (str) – path containing for package


context – with named parameters of interest

Return type:


IPython.utils.sysinfo.get_sys_info() dict

Return useful information about IPython and the system, as a dict.


Return useful information about IPython and the system, as a string.


In [2]: print(sys_info())
{'commit_hash': '144fdae',      # random
 'commit_source': 'repository',
 'ipython_path': '/home/fperez/usr/lib/python2.6/site-packages/IPython',
 'ipython_version': '',
 'os_name': 'posix',
 'platform': 'Linux-2.6.35-22-generic-i686-with-Ubuntu-10.10-maverick',
 'sys_executable': '/usr/bin/python',
 'sys_platform': 'linux2',
 'sys_version': '2.6.6 (r266:84292, Sep 15 2010, 15:52:39) \n[GCC 4.4.5]'}


Return the effective number of CPUs in the system as an integer.

This cross-platform function makes an attempt at finding the total number of available CPUs in the system, as returned by various underlying system and python calls.

If it can’t find a sensible answer, it returns 1 (though an error may make it return a large positive number that’s actually incorrect).