fix Cython installation, make compilation obligatory (unless explicitly disabled...
authorStefan Behnel <scoder@users.berlios.de>
Fri, 2 Jul 2010 19:53:06 +0000 (21:53 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Fri, 2 Jul 2010 19:53:06 +0000 (21:53 +0200)
setup.py

index 9f752d4fde570f234bde5e762a6d1f9d19408358..9e23302631e20af7bce262c3a33ff81ad708cd87 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -155,6 +155,12 @@ def compile_cython_modules(profile=False):
                     result = compile(pyx_source_file)
                     c_source_file = result.c_file
                 if c_source_file:
+                    # Py2 distutils can't handle unicode file paths
+                    if isinstance(c_source_file, unicode):
+                        filename_encoding = sys.getfilesystemencoding()
+                        if filename_encoding is None:
+                            filename_encoding = sys.getdefaultencoding()
+                        c_source_file = c_source_file.encode(filename_encoding)
                     extensions.append(
                         Extension(module, sources = [c_source_file])
                         )
@@ -164,8 +170,15 @@ def compile_cython_modules(profile=False):
                 setup_args['ext_modules'] = extensions
                 add_command_class("build_ext", build_ext)
         except Exception:
-            print("ERROR: %s" % sys.exc_info()[1])
-            print("Extension module compilation failed, using plain Python implementation")
+            print('''
+ERROR: %s
+
+Extension module compilation failed, looks like Cython cannot run
+properly on this system.  To work around this, pass the option
+"--no-cython-compile".  This will install a pure Python version of
+Cython without compiling its own sources.
+''' % sys.exc_info()[1])
+            raise
 
 cython_profile = '--cython-profile' in sys.argv
 if cython_profile: