<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_user_envs(self):
 """ Loads downloaded user envs from filesystem cache on `import gym` """

        installed_packages = self._list_packages()

        # Tagging core envs
        gym_package = 'gym ({})'.format(installed_packages['gym']) if 'gym' in installed_packages else 'gym'
        core_specs = registry.all()
        for spec in core_specs:
            spec.source = 'OpenAI Gym Core Package'
            spec.package = gym_package

        # Loading user envs
        if not os.path.isfile(self.cache_path):
            return
        with open(self.cache_path) as cache:
            for line in cache:
                user_package, registered_envs = self._load_package(line.rstrip('\n'), installed_packages)
                if logger.level <= logging.DEBUG:
                    logger.debug('Installed %d user environments from package "%s"', len(registered_envs), user_package['name'])
        if self.cache_needs_update:
            self._update_cache()
        if len(self.env_ids) > 0:
            logger.info('Found and registered %d user environments.', len(self.env_ids))