[Numpy-svn] r6200 - trunk/numpy/distutils/command
numpy-svn at scipy.org
numpy-svn at scipy.org
Sat Dec 27 05:15:34 EST 2008
Author: cdavid
Date: 2008-12-27 04:15:30 -0600 (Sat, 27 Dec 2008)
New Revision: 6200
Modified:
trunk/numpy/distutils/command/config.py
Log:
BUG (#970): fix a python 2.6 bug in distutils which caused an unhelpful Error:None message when trying to build with no VS installed and without the -c mingw32 option.
Modified: trunk/numpy/distutils/command/config.py
===================================================================
--- trunk/numpy/distutils/command/config.py 2008-12-27 10:06:25 UTC (rev 6199)
+++ trunk/numpy/distutils/command/config.py 2008-12-27 10:15:30 UTC (rev 6200)
@@ -5,11 +5,13 @@
import os, signal
import warnings
+import sys
from distutils.command.config import config as old_config
from distutils.command.config import LANG_EXT
from distutils import log
from distutils.file_util import copy_file
+import distutils
from numpy.distutils.exec_command import exec_command
from numpy.distutils.mingw32ccompiler import generate_manifest
@@ -49,6 +51,25 @@
self.fcompiler.customize_cmd(self)
self.fcompiler.show_customization()
+ if sys.platform == 'win32' and self.compiler.compiler_type == 'msvc':
+ # XXX: hack to circumvent a python 2.6 bug with msvc9compiler:
+ # initialize call query_vcvarsall, which throws an IOError, and
+ # causes an error along the way without much information. We try to
+ # catch it here, hoping it is early enough, and print an helpful
+ # message instead of Error: None.
+ if not self.compiler.initialized:
+ try:
+ self.compiler.initialize()
+ except IOError, e:
+ msg = """\
+Could not initialize %s instance: do you have Visual Studio installed ? If you
+are trying to build with mingw, please use python setup.py build -c mingw32
+instead (original caught exception was %s). If you have Visual Studio
+installed, check it is correctly installed, and the right version (VS 2008 for
+python 2.6, VS 2003 for 2.5, etc...)""" % \
+ (self.compiler.__class__.__name__, e)
+ raise distutils.errors.DistutilsPlatformError(msg)
+
def _wrap_method(self,mth,lang,args):
from distutils.ccompiler import CompileError
from distutils.errors import DistutilsExecError
More information about the Numpy-svn
mailing list