minerllabs / minerl

MineRL Competition for Sample Efficient Reinforcement Learning - Python Package
http://minerl.io/docs/
Other
672 stars 153 forks source link

Error importing minerl #718

Closed Sanfee18 closed 1 year ago

Sanfee18 commented 1 year ago

I'm executing a MineRL python program inside of a Singularity container on a cluster and I got the following error: File "PPO.py", line 9, in import minerl File "/usr/local/lib/python3.8/dist-packages/minerl/init.py", line 6, in import minerl.herobraine.envs File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/envs.py", line 20, in MINERL_TREECHOP_V0 = Treechop() File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/treechop_specs.py", line 42, in init super().init(args, File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/human_controls.py", line 91, in init super().init(name, args, *kwargs) File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/human_controls.py", line 54, in init super().init(name, args, **kwargs) File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_spec.py", line 38, in init self.reset() File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_spec.py", line 44, in reset self.actionables = self.create_actionables() File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/human_controls.py", line 103, in create_actionables return [ File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/human_controls.py", line 104, in H.KeybasedCommandAction(k, v) for k, v in INVERSE_KEYMAP.items() File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/hero/handlers/agent/actions/keyboard.py", line 60, in init super().init(command, spaces.Discrete(len(keys) + 1)) File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/hero/spaces.py", line 206, in init self.shape = () AttributeError: can't set attribute

Miffyli commented 1 year ago

Make sure to install gym==0.19 (or, now, this version specifically: https://github.com/minerllabs/gym/tree/minerl-fix )

Sanfee18 commented 1 year ago

Now I get the following error:

Traceback (most recent call last): File "PPO.py", line 83, in model.learn(total_timesteps=10000000, callback=eval_callback, progress_bar=True) File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/stable_baselines3/ppo/ppo.py", line 308, in learn return super().learn( File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/stable_baselines3/common/on_policy_algorithm.py", line 246, in learn total_timesteps, callback = self._setup_learn( File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/stable_baselines3/common/base_class.py", line 424, in _setup_learn self._last_obs = self.env.reset() # type: ignore[assignment] File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/stable_baselines3/common/vec_env/vec_transpose.py", line 110, in reset return self.transpose_observations(self.venv.reset()) File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/stable_baselines3/common/vec_env/dummy_vec_env.py", line 76, in reset obs, self.reset_infos[env_idx] = self.envs[env_idx].reset(seed=self._seeds[env_idx]) File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/stable_baselines3/common/monitor.py", line 83, in reset return self.env.reset(kwargs) File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/shimmy/openai_gym_compatibility.py", line 241, in reset obs = self.gym_env.reset() File "PPO.py", line 58, in reset obs = self.env.reset(kwargs) File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/gym/wrappers/time_limit.py", line 27, in reset return self.env.reset(kwargs) File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/basalt_specs.py", line 78, in reset return self.env.reset() File "/usr/local/lib/python3.8/dist-packages/minerl/herobraine/env_specs/basalt_specs.py", line 57, in reset return super().reset() File "/data/dsaneng@alumno.upv.es/.local/lib/python3.8/site-packages/gym/core.py", line 251, in reset return self.env.reset(kwargs) File "/usr/local/lib/python3.8/dist-packages/minerl/env/_singleagent.py", line 22, in reset multi_obs = super().reset() File "/usr/local/lib/python3.8/dist-packages/minerl/env/_multiagent.py", line 436, in reset self._setup_instances() File "/usr/local/lib/python3.8/dist-packages/minerl/env/_multiagent.py", line 539, in _setup_instances self.instances.extend([f.result() for f in instance_futures]) File "/usr/local/lib/python3.8/dist-packages/minerl/env/_multiagent.py", line 539, in self.instances.extend([f.result() for f in instance_futures]) File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result return self.get_result() File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in get_result raise self._exception File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/usr/local/lib/python3.8/dist-packages/minerl/env/_multiagent.py", line 805, in _get_new_instance instance.launch(replaceable=self._is_fault_tolerant) File "/usr/local/lib/python3.8/dist-packages/minerl/env/malmo.py", line 427, in launch raise EOFError( EOFError: /usr/local/lib/python3.8/dist-packages/minerl/env/../MCP-Reborn 2023-07-01 11:52:21,296 main ERROR Cannot access RandomAccessFile java.io.IOException: Could not create directory /usr/local/lib/python3.8/dist-packages/minerl/MCP-Reborn/logs java.io.IOException: Could not create directory /usr/local/lib/python3.8/dist-packages/minerl/MCP-Reborn/logs at org.apache.logging.log4j.core.util.FileUtils.mkdir(FileUtils.java:127) at org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:144) at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory.createManager(RollingRandomAccessFileManager.java:218) at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory.createManager(RollingRandomAccessFileManager.java:191) at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:113) at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114) at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.getRollingRandomAccessFileManager(RollingRandomAccessFileManager.java:108) at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:132) at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:53) at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122) at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:964) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:904) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896) at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514) at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238) at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250) at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:567) at net.minecraft.client.main.Main.(Main.java:44)

2023-07-01 11:52:21,299 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for element RollingRandomAccessFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory@291caca8] unable to create manager for [logs/latest.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@385e9564] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory@291caca8] unable to create manager for [logs/latest.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@385e9564] at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:115) at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114) at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.getRollingRandomAccessFileManager(RollingRandomAccessFileManager.java:108) at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:132) at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender$Builder.build(RollingRandomAccessFileAppender.java:53) at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122) at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:964) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:904) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896) at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514) at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238) at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250) at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:567) at net.minecraft.client.main.Main.(Main.java:44)

2023-07-01 11:52:21,302 main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for element RollingRandomAccessFile: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:234) at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:134) at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:964) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:904) at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896) at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514) at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238) at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250) at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:567) at net.minecraft.client.main.Main.(Main.java:44)

2023-07-01 11:52:21,304 main ERROR Null object returned for RollingRandomAccessFile in Appenders. 2023-07-01 11:52:21,309 main ERROR Unable to locate appender "File" for logger config "root" SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [11:52:25] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [11:52:26] [Render thread/INFO]: Setting user: Player368 [11:52:27] [Render thread/INFO]: Backend library: LWJGL version 3.2.2 SNAPSHOT ---- Minecraft Crash Report ---- // Oops.

Time: 7/1/23 11:52 AM Description: Initializing game

java.lang.IllegalStateException: Failed to initialize GLFW, errors: GLFW error during init: [0x10008]140130482966256 at com.mojang.blaze3d.platform.GLX._initGlfw(GLX.java:80) at com.mojang.blaze3d.systems.RenderSystem.initBackendSystem(RenderSystem.java:586) at net.minecraft.client.Minecraft.(Minecraft.java:406) at net.minecraft.client.main.Main.main(Main.java:154)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head -- Thread: Render thread Stacktrace: at com.mojang.blaze3d.platform.GLX._initGlfw(GLX.java:80) at com.mojang.blaze3d.systems.RenderSystem.initBackendSystem(RenderSystem.java:586) at net.minecraft.client.Minecraft.(Minecraft.java:406)

-- Initialization -- Details: Stacktrace: at net.minecraft.client.main.Main.main(Main.java:154)

-- System Details -- Details: Minecraft Version: 1.16.5 Minecraft Version ID: 1.16.5 Operating System: Linux (amd64) version 5.4.0-149-generic Java Version: 1.8.0_362, Private Build Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Private Build Memory: 1838016984 bytes (1752 MB) / 2076049408 bytes (1979 MB) up to 4151836672 bytes (3959 MB) CPUs: 1 JVM Flags: 1 total; -Xmx4G Launched Version: NULL Backend library: LWJGL version 3.2.2 SNAPSHOT Backend API: NO CONTEXT GL Caps: Using VBOs: Yes Is Modded: Very likely; Jar signature invalidated Type: Client (map_client.txt) CPU: [11:52:27] [Render thread/ERROR]: Could not save crash report to ./crash-reports/crash-2023-07-01_11.52.27-client.txt java.io.FileNotFoundException: ./crash-reports/crash-2023-07-01_11.52.27-client.txt (No such file or directory) at java.io.FileOutputStream.open0(Native Method) ~[?:1.8.0_362] at java.io.FileOutputStream.open(FileOutputStream.java:270) ~[?:1.8.0_362] at java.io.FileOutputStream.(FileOutputStream.java:213) ~[?:1.8.0_362] at java.io.FileOutputStream.(FileOutputStream.java:162) ~[?:1.8.0_362] at net.minecraft.crash.CrashReport.saveToFile(CrashReport.java:179) [mcprec-6.13.jar:?] at net.minecraft.client.Minecraft.displayCrashReport(Minecraft.java:708) [mcprec-6.13.jar:?] at net.minecraft.client.main.Main.main(Main.java:167) [mcprec-6.13.jar:?]

@?@# Game crashed! Crash report could not be saved. #@?@

Minecraft process finished unexpectedly. There was an error with Malmo.

Miffyli commented 1 year ago

Looks like you do not have display attached to the machine. See docs on how to use xvfb to run the script (xvfb-run -a python [your script].

Sanfee18 commented 1 year ago

I tried it and it didn't work, it keeps giving the same error. Since I'm executing it on a Singularity container I've tried everything modification that is possible for them and it still gives the same error.

Miffyli commented 1 year ago

Hmm ah this might be an issue with Singularity, I have not tried it on Singularity or cluster setups, but I have heard MineRL does not play super well there. You could try if this repo has any hints (used by MineDojo people), but beyond that I have no other tips to give.

Sanfee18 commented 1 year ago

Okay, thank you so much for the support!