Răsfoiți Sursa

Merge pull request #8211 from ThomasWaldmann/fix-cythonize-import-error-reporting-1.2

setup.py: fix import error reporting for cythonize import, see #8208
TW 1 an în urmă
părinte
comite
2574abb2cd
1 a modificat fișierele cu 9 adăugiri și 2 ștergeri
  1. 9 2
      setup.py

+ 9 - 2
setup.py

@@ -16,8 +16,13 @@ from setuptools.command.sdist import sdist
 
 try:
     from Cython.Build import cythonize
-except ImportError:
+    cythonize_import_error_msg = None
+except ImportError as exc:
+    # either there is no Cython installed or there is some issue with it.
     cythonize = None
+    cythonize_import_error_msg = "ImportError: " + str(exc)
+    if "failed to map segment from shared object" in cythonize_import_error_msg:
+        cythonize_import_error_msg += " Check if the borg build uses a +exec filesystem."
 
 sys.path += [os.path.dirname(__file__)]
 import setup_checksums
@@ -134,7 +139,9 @@ else:
 
     cython_c_files = [fn.replace('.pyx', '.c') for fn in cython_sources]
     if not on_rtd and not all(os.path.exists(path) for path in cython_c_files):
-        raise ImportError('The GIT version of Borg needs Cython. Install Cython or use a released version.')
+        raise ImportError("The GIT version of Borg needs a working Cython. " +
+                          "Install or fix Cython or use a released borg version. " +
+                          "Importing cythonize failed with: " + cythonize_import_error_msg)
 
 
 def rm(file):