diff --git a/couchpotato/core/loader.py b/couchpotato/core/loader.py index a5816cc2..ee7afcb1 100644 --- a/couchpotato/core/loader.py +++ b/couchpotato/core/loader.py @@ -51,8 +51,13 @@ class Loader(object): did_save += self.loadSettings(m, module_name, save = False) self.loadPlugins(m, plugin.get('name')) - except ImportError: - log.debug('Import error, remove the empty folder: %s' % plugin.get('module')) + except ImportError as e: + # todo:: subclass ImportError for missing requirements. + if (e.message.lower().startswith("missing")): + log.error(e.message) + pass + # todo:: this needs to be more descriptive. + log.error('Import error, remove the empty folder: %s' % plugin.get('module')) except: log.error('Can\'t import %s: %s' % (module_name, traceback.format_exc())) diff --git a/couchpotato/core/plugins/browser/main.py b/couchpotato/core/plugins/browser/main.py index 21d3b4b7..887edc30 100644 --- a/couchpotato/core/plugins/browser/main.py +++ b/couchpotato/core/plugins/browser/main.py @@ -6,7 +6,15 @@ import os import string if os.name == 'nt': - import win32file + import imp + try: + imp.find_module('win32file') + except: + # todo:: subclass ImportError for missing dependencies, vs. broken plugins? + raise ImportError("Missing the win32file module, which is a part of the prerequisite \ + pywin32 package. You can get it from http://sourceforge.net/projects/pywin32/files/pywin32/"); + else: + import win32file class FileBrowser(Plugin):