gym 加载/获取 其它模块/库的自定义环境 为什么不需要import自定义的模块/库 只需import gym

print(gymnasium.envs.registry.keys())

 

site-packages\gymnasium\envs\__init__.py

# Hook to load plugins from entry points
load_plugin_envs()在这里载入的其它 模块/库 的自定义环境

 

Load modules (plugins) using the gymnasium entry points in order to register external module's environments on ``import gymnasium``.

 

metadata.entry_points(group=entry_point)

Return EntryPoint objects for all installed packages.
Pass selection parameters (group or name) to filter the result to entry points matching those properties (see EntryPoints.select()).

 

可以通过下面代码查看,查看eps变量中有一些group,gym使用的是 gymnasium.envs

from importlib.metadata import entry_points

eps = entry_points()

 

 

entry points是发布模块“宣传”Python对象(比如函数、类)的一种方法,这些Python对象可以被其他发布模块使用。(就是自定义环境库中的环境可以被gym发现和使用)一些可扩展的应用和框架可以通过特定的名字找到entry points,也可以通过发布模块的名字来找到,找到之后即可加载使用这些对象了。

posted @ 2023-05-13 16:46  hrdom  阅读(80)  评论(0编辑  收藏  举报