code: def requires(self, *modules):
          
          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)
docs: 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