From 0b8f5b0d8ea912b4cf5643429396f7e8207971cd Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 24 Feb 2011 21:07:23 +0000 Subject: [PATCH] show multiple import errors --- direct/src/ffi/panda3d.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/direct/src/ffi/panda3d.py b/direct/src/ffi/panda3d.py index 4cd659be2d..44f7b28ab0 100644 --- a/direct/src/ffi/panda3d.py +++ b/direct/src/ffi/panda3d.py @@ -172,8 +172,14 @@ class panda3d_multisubmodule(type(sys)): def __load__(self): """ Forces the libraries to be loaded right now. """ + err = [] for lib in self.__libraries__: - self.__manager__.libimport(lib) + try: + self.__manager__.libimport(lib) + except ImportError, msg: + err.append(str(msg).rstrip('.')) + if len(err) > 0: + raise ImportError, ', '.join(err) def __getattr__(self, name): if name == "__all__": @@ -203,8 +209,15 @@ class panda3d_module(type(sys)): def __load__(self): """ Force all the libraries to be loaded right now. """ + err = [] for module in self.modules: - self.__manager__.sys.modules["panda3d.%s" % module].__load__() + try: + self.__manager__.sys.modules["panda3d.%s" % module].__load__() + except ImportError, msg: + err.append(str(msg).rstrip('.')) + if len(err) > 0: + raise ImportError, ', '.join(err) + def __getattr__(self, name): if name == "__all__":