def lazy_init(self):
        """
        Only init once in runtime, variable here exists till the close_env is called
        :return: None
        """
        # It is the true init() func to create the main vehicle and its module, to avoid incompatible with ray
        if engine_initialized():
            return
        initialize_engine(self.config)
        # engine setup
        self.setup_engine()
        # other optional initialization
        self._after_lazy_init()
        self.logger.info(
            "Start Scenario Index: {}, Num Scenarios : {}".format(
                self.engine.gets_start_index(self.config), self.config.get("num_scenarios", 1)
            )
        )

        Only init once in runtime, variable here exists till the close_env is called
        :return: None
        
metadrive/envs/base_env.py