Discovering the Details About Your Platform — Python 3 Patterns, Recipes and Idioms (original) (raw)

The Python library XXX will give you some information about your machine, but it falls short. Here’s a rather messy, but useful way to figure out everything else.

Just a starting point:

MachineDiscovery/detect_CPUs.py

def detect_CPUs(): """ Detects the number of CPUs on a system. Cribbed from pp. """ # Linux, Unix and MacOS: if hasattr(os, "sysconf"): if os.sysconf_names.has_key("SC_NPROCESSORS_ONLN"): # Linux & Unix: ncpus = os.sysconf("SC_NPROCESSORS_ONLN") if isinstance(ncpus, int) and ncpus > 0: return ncpus else: # OSX: return int(os.popen2("sysctl -n hw.ncpu")[1].read()) # Windows: if os.environ.has_key("NUMBER_OF_PROCESSORS"): ncpus = int(os.environ["NUMBER_OF_PROCESSORS"]); if ncpus > 0: return ncpus return 1 # Default