- Added a workaround for Python bug 7511 where
failure of C extension build does not raise an appropriate exception on Windows 64 bit + VC express [ticket:2184]
This commit is contained in:
parent
eae80bb046
commit
dc75e0c683
6
CHANGES
6
CHANGES
|
@ -5,6 +5,12 @@ CHANGES
|
|||
=======
|
||||
0.7.1
|
||||
=====
|
||||
- general
|
||||
- Added a workaround for Python bug 7511 where
|
||||
failure of C extension build does not
|
||||
raise an appropriate exception on Windows 64
|
||||
bit + VC express [ticket:2184]
|
||||
|
||||
- orm
|
||||
- "delete-orphan" cascade is now allowed on
|
||||
self-referential relationships - this since
|
||||
|
|
12
setup.py
12
setup.py
|
@ -51,14 +51,11 @@ ext_modules = [
|
|||
sources=['lib/sqlalchemy/cextension/resultproxy.c'])
|
||||
]
|
||||
|
||||
ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError)
|
||||
if sys.platform == 'win32' and sys.version_info > (2, 6):
|
||||
# 2.6's distutils.msvc9compiler can raise an IOError when failing to
|
||||
# find the compiler
|
||||
ext_errors = (
|
||||
CCompilerError, DistutilsExecError,
|
||||
DistutilsPlatformError, IOError)
|
||||
else:
|
||||
ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError)
|
||||
ext_errors += (IOError,)
|
||||
|
||||
class BuildFailed(Exception):
|
||||
|
||||
|
@ -79,6 +76,11 @@ class ve_build_ext(build_ext):
|
|||
build_ext.build_extension(self, ext)
|
||||
except ext_errors:
|
||||
raise BuildFailed()
|
||||
except ValueError:
|
||||
# this can happen on Windows 64 bit, see Python issue 7511
|
||||
if "'path'" in str(sys.exc_info()[1]): # works with both py 2/3
|
||||
raise BuildFailed()
|
||||
raise
|
||||
|
||||
cmdclass['build_ext'] = ve_build_ext
|
||||
|
||||
|
|
Loading…
Reference in New Issue