[Python-checkins] r63395 - in python/trunk: Lib/ctypes/util.py Misc/NEWS
thomas.heller
python-checkins at python.org
Fri May 16 22:06:31 CEST 2008
Author: thomas.heller
Date: Fri May 16 22:06:31 2008
New Revision: 63395
Log:
Issue 1793: Add ctypes.util.find_msvcrt() function (on Windows).
Modified:
python/trunk/Lib/ctypes/util.py
python/trunk/Misc/NEWS
Modified: python/trunk/Lib/ctypes/util.py
==============================================================================
--- python/trunk/Lib/ctypes/util.py (original)
+++ python/trunk/Lib/ctypes/util.py Fri May 16 22:06:31 2008
@@ -5,7 +5,50 @@
# find_library(name) returns the pathname of a library, or None.
if os.name == "nt":
+
+ def _get_build_version():
+ """Return the version of MSVC that was used to build Python.
+
+ For Python 2.3 and up, the version number is included in
+ sys.version. For earlier versions, assume the compiler is MSVC 6.
+ """
+ # This function was copied from Lib/distutils/msvccompiler.py
+ prefix = "MSC v."
+ i = sys.version.find(prefix)
+ if i == -1:
+ return 6
+ i = i + len(prefix)
+ s, rest = sys.version[i:].split(" ", 1)
+ majorVersion = int(s[:-2]) - 6
+ minorVersion = int(s[2:3]) / 10.0
+ # I don't think paths are affected by minor version in version 6
+ if majorVersion == 6:
+ minorVersion = 0
+ if majorVersion >= 6:
+ return majorVersion + minorVersion
+ # else we don't know what version of the compiler this is
+ return None
+
+ def find_msvcrt():
+ """Return the name of the VC runtime dll"""
+ version = _get_build_version()
+ if version is None:
+ # better be safe than sorry
+ return None
+ if version <= 6:
+ clibname = 'msvcrt'
+ else:
+ clibname = 'msvcr%d' % (version * 10)
+
+ # If python was built with in debug mode
+ import imp
+ if imp.get_suffixes()[0][0] == '_d.pyd':
+ clibname += 'd'
+ return clibname+'.dll'
+
def find_library(name):
+ if name in ('c', 'm'):
+ return find_msvcrt()
# See MSDN for the REAL search order.
for directory in os.environ['PATH'].split(os.pathsep):
fname = os.path.join(directory, name)
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Fri May 16 22:06:31 2008
@@ -41,6 +41,11 @@
Library
-------
+- Issue 1793: Function ctypes.util.find_msvcrt() added that returns
+ the name of the C runtime library that Python uses.
+ ctypes.util.find_library(name) now call this function when name is
+ 'm' or 'c'.
+
- The Tkinter module has been made a package and renamed 'tkinter'. All
Tkinter-related modules (like Tix, ScrolledText, turtle etc.) are now
submodules of that package and have been renamed to conform to PEP 8
More information about the Python-checkins
mailing list