[Python-checkins] cpython (2.7): Issue #24634: Importing uuid should not try to load libc on Windows

steve.dower python-checkins at python.org
Sat Aug 8 18:29:43 CEST 2015


https://hg.python.org/cpython/rev/90e2747425ad
changeset:   97332:90e2747425ad
branch:      2.7
parent:      97321:418095f0d711
user:        Steve Dower <steve.dower at microsoft.com>
date:        Tue Jul 14 13:25:03 2015 -0700
summary:
  Issue #24634: Importing uuid should not try to load libc on Windows

files:
  Lib/uuid.py |  8 ++++++--
  Misc/NEWS   |  2 ++
  2 files changed, 8 insertions(+), 2 deletions(-)


diff --git a/Lib/uuid.py b/Lib/uuid.py
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -441,10 +441,14 @@
 _uuid_generate_random = _uuid_generate_time = _UuidCreate = None
 try:
     import ctypes, ctypes.util
+    import sys
 
     # The uuid_generate_* routines are provided by libuuid on at least
     # Linux and FreeBSD, and provided by libc on Mac OS X.
-    for libname in ['uuid', 'c']:
+    _libnames = ['uuid']
+    if not sys.platform.startswith('win'):
+        _libnames.append('c')
+    for libname in _libnames:
         try:
             lib = ctypes.CDLL(ctypes.util.find_library(libname))
         except:
@@ -455,6 +459,7 @@
             _uuid_generate_time = lib.uuid_generate_time
             if _uuid_generate_random is not None:
                 break  # found everything we were looking for
+    del _libnames
 
     # The uuid_generate_* functions are broken on MacOS X 10.5, as noted
     # in issue #8621 the function generates the same sequence of values
@@ -463,7 +468,6 @@
     #
     # Assume that the uuid_generate functions are broken from 10.5 onward,
     # the test can be adjusted when a later version is fixed.
-    import sys
     if sys.platform == 'darwin':
         import os
         if int(os.uname()[2].split('.')[0]) >= 9:
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -34,6 +34,8 @@
 Library
 -------
 
+- Issue #24634: Importing uuid should not try to load libc on Windows
+
 - Issue #23652: Make it possible to compile the select module against the
   libc headers from the Linux Standard Base, which do not include some
   EPOLL macros.  Initial patch by Matt Frank.

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list