[Numpy-svn] r6196 - trunk/numpy/distutils
numpy-svn at scipy.org
numpy-svn at scipy.org
Fri Dec 26 07:36:25 EST 2008
Author: cdavid
Date: 2008-12-26 06:36:19 -0600 (Fri, 26 Dec 2008)
New Revision: 6196
Modified:
trunk/numpy/distutils/mingw32ccompiler.py
Log:
Do not import msvcrt globally in mingw32compiler module, since the module is imported on all platforms.
Modified: trunk/numpy/distutils/mingw32ccompiler.py
===================================================================
--- trunk/numpy/distutils/mingw32ccompiler.py 2008-12-26 12:16:45 UTC (rev 6195)
+++ trunk/numpy/distutils/mingw32ccompiler.py 2008-12-26 12:36:19 UTC (rev 6196)
@@ -241,26 +241,31 @@
# directory, but this requires the manifest for this to work. This is a big
# mess, thanks MS for a wonderful system.
-# XXX: ideally, we should use exactly the same version as used by python, but I
-# have no idea how to obtain the exact version from python. We could use the
-# strings utility on python.exe, maybe ?
-try:
- import msvcrt
- if hasattr(msvcrt, "CRT_ASSEMBLY_VERSION"):
- _MSVCRVER_TO_FULLVER = {'90': msvcrt.CRT_ASSEMBLY_VERSION}
- else:
- _MSVCRVER_TO_FULLVER = {'90': "9.0.21022.8"}
-except ImportError:
- # If we are here, means python was not built with MSVC. Not sure what to do
- # in that case: manifest building will fail, but it should not be used in
- # that case anyway
- log.warn('Cannot import msvcrt: using manifest will not be possible')
+# XXX: ideally, we should use exactly the same version as used by python. I
+# submitted a patch to get this version, but it was only included for python
+# 2.6.1 and above. So for versions below, we use a "best guess".
+_MSVCRVER_TO_FULLVER = {'90': None}
+def msvcrt_version(num):
+ k = _MSVCRVER_TO_FULLVER[num]
+ if not k:
+ try:
+ import msvcrt
+ if hasattr(msvcrt, "CRT_ASSEMBLY_VERSION"):
+ _MSVCRVER_TO_FULLVER = {'90': msvcrt.CRT_ASSEMBLY_VERSION}
+ else:
+ _MSVCRVER_TO_FULLVER = {'90': "9.0.21022.8"}
+ except ImportError:
+ # If we are here, means python was not built with MSVC. Not sure what to do
+ # in that case: manifest building will fail, but it should not be used in
+ # that case anyway
+ log.warn('Cannot import msvcrt: using manifest will not be possible')
+
def msvc_manifest_xml(maj, min):
"""Given a major and minor version of the MSVCR, returns the
corresponding XML file."""
try:
- fullver = _MSVCRVER_TO_FULLVER[str(maj * 10 + min)]
+ fullver = msvcrt_version[str(maj * 10 + min)]
except KeyError:
raise ValueError("Version %d,%d of MSVCRT not supported yet" \
% (maj, min))
More information about the Numpy-svn
mailing list