Lawrence Oluyede <[EMAIL PROTECTED]> wrote: > John <[EMAIL PROTECTED]> wrote: > > Is there a way to find the number of processors on a machine (on linux/ > > windows/macos/cygwin) using python code (using the same code/cross > > platform code)? > > From processing <http://cheeseshop.python.org/pypi/processing/0.34> : > > def cpuCount(): > ''' > Returns the number of CPUs in the system > ''' > if sys.platform == 'win32': > try: > num = int(os.environ['NUMBER_OF_PROCESSORS']) > except (ValueError, KeyError): > pass > elif sys.platform == 'darwin': > try: > num = int(os.popen('sysctl -n hw.ncpu').read()) > except ValueError: > pass > else: > try: > num = os.sysconf('SC_NPROCESSORS_ONLN') > except (ValueError, OSError, AttributeError): > pass > > if num >= 1: > return num > else: > raise NotImplementedError
There is a bug in that code... NotImplementedError will never be raised because num won't have been set. It will raise "UnboundLocalError: local variable 'num' referenced before assignment" instead -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list