Registers the system paths for the inputted modules so that they can
        be imported properly.  By default, this will check to see if the
        key PROJEX_[MODULE]_PATH exists in the environment, and if so, insert
        that path to the front of the sys.path for import.  Out of the box
        installations will register import paths to default projex folders
        and won't need to define these path variables. (lib/,stdplug/,userplug)
        
        :param      *modules     ( <str>, .. )
        
        :usage      |>>> import projex
                    |>>> projex.logger.setLevel( projex.logging.DEBUG )
                    |>>> projex.environ().requires( 'orb', 'anansi' )
                    |DEBUG: EnvManager.requires: PROJEX_ORB_PATH
                    |DEBUG: EnvManager.requires: PROJEX_ANANSI_PATH
                    |>>> import opb
                    |>>> import openwebdk

def requires(self, *modules):
        """
        Registers the system paths for the inputted modules so that they can
        be imported properly.  By default, this will check to see if the
        key PROJEX_[MODULE]_PATH exists in the environment, and if so, insert
        that path to the front of the sys.path for import.  Out of the box
        installations will register import paths to default projex folders
        and won't need to define these path variables. (lib/,stdplug/,userplug)
        
        :param      *modules     ( <str>, .. )
        
        :usage      |>>> import projex
                    |>>> projex.logger.setLevel( projex.logging.DEBUG )
                    |>>> projex.environ().requires( 'orb', 'anansi' )
                    |DEBUG: EnvManager.requires: PROJEX_ORB_PATH
                    |DEBUG: EnvManager.requires: PROJEX_ANANSI_PATH
                    |>>> import opb
                    |>>> import openwebdk
        """
        self._setup()

        for module in modules:
            if '-' in module:
                parts = module.split('-')
                module = parts[0]
                version = '-'.join(parts)
            else:
                version = ''

            if module in self._loadedRequires:
                continue

            self._loadedRequires.append(module)
            path_key = 'PROJEX_%s_PATH' % nstr(module).upper()
            env_path = os.getenv(path_key)

            logger.debug('Looking up %s: %s' % (path_key, env_path))

            # push the path for the particular module if found in the env
            if env_path:
                self.pushPath(env_path)