فهرست منبع

protect against python 2.4

David Rose 16 سال پیش
والد
کامیت
a745e451db
1فایلهای تغییر یافته به همراه8 افزوده شده و 1 حذف شده
  1. 8 1
      direct/src/ffi/DoGenPyCode.py

+ 8 - 1
direct/src/ffi/DoGenPyCode.py

@@ -262,7 +262,14 @@ def generateNativeWrappers():
         # the library isn't present.  This is particularly necessary
         # in the runtime (plugin) environment, where all libraries are
         # not necessarily downloaded.
-        pandaModules.write('try:\n  from %sModules import *\nexcept ImportError as err:\n  if "DLL loader cannot find" not in str(err):\n    raise\n\n' % (moduleName))
+        if sys.version_info < (2, 5):
+            # In Python 2.4 and earlier, we didn't have the "except
+            # ImportError as err" syntax.
+            pandaModules.write('try:\n  from %sModules import *\nexcept ImportError:\n  print "Failed to import %s"\n\n' % (moduleName, moduleName))
+        else:
+            # Try to differentiate between missing files and other
+            # kinds of ImportErrors.
+            pandaModules.write('try:\n  from %sModules import *\nexcept ImportError as err:\n  if "DLL loader cannot find" not in str(err):\n    raise\n  print "Failed to import %s"\n\n' % (moduleName, moduleName))
 
         moduleModulesFilename = os.path.join(outputCodeDir, '%sModules.py' % (moduleName))
         moduleModules = open(moduleModulesFilename, 'w')