huawei-noah / SMARTS

Scalable Multi-Agent RL Training School for Autonomous Driving

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't pickle local object 'EnvisionStateFilter.default..default_override

ggplz opened this issue · comments

High Level Description

/opt/anaconda3/envs/ggplz/bin/python /Users/heshouliang/smart/pymarl-master/src/SMARTS/examples/e3_multi_agent.py
Traceback (most recent call last):
File "/Users/heshouliang/smart/pymarl-master/src/SMARTS/examples/e3_multi_agent.py", line 85, in
main(
File "/Users/heshouliang/smart/pymarl-master/src/SMARTS/examples/e3_multi_agent.py", line 48, in main
env = gym.make(
File "/opt/anaconda3/envs/ggplz/lib/python3.8/site-packages/gymnasium/envs/registration.py", line 802, in make
env = env_creator(**env_spec_kwargs)
File "/Users/heshouliang/smart/pymarl-master/src/SMARTS/smarts/env/gymnasium/hiway_env_v1.py", line 158, in init
visualization_client = visualization_client_builder(
File "/Users/heshouliang/smart/pymarl-master/src/SMARTS/envision/client.py", line 153, in init
self._process.start()
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in init
super().init(process_obj)
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/popen_fork.py", line 19, in init
self._launch(process_obj)
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/opt/anaconda3/envs/ggplz/lib/python3.8/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'EnvisionStateFilter.default..default_override'

我在运行官网多智能体的例子时也发生同样问题,请问如何解决?

Version

1.4.0

Operating System

No response

Problems

No response

Hello, @ggplz, this appears to be a bug that was not caught by the CI.

  • I have put up a fix for it at #2100.

What version of python are you using?

Hello, @ggplz, this appears to be a bug that was not caught by the CI.

What version of python are you using?

python 3.8.18

Hello, @ggplz, this appears to be a bug that was not caught by the CI.

What version of python are you using?

After fallowing ur fix steps , another bug happened as follows :_pickle.PicklingError: Can't pickle <function EnvisionDataFormatterArgs. at 0x114957c10>: attribute lookup EnvisionDataFormatterArgs. on envision.data_formatter failed

so I changed the code in envision/data_formatter.py.EnvisionDataFormatterArgs() as follows: serializer: Callable[[list], Any] = list

So I could run the code successfully , thx

After fallowing ur fix steps , another bug happened as follows :_pickle.PicklingError: Can't pickle <function EnvisionDataFormatterArgs. at 0x114957c10>: attribute lookup EnvisionDataFormatterArgs. on envision.data_formatter failed

so I changed the code in envision/data_formatter.py.EnvisionDataFormatterArgs() as follows: serializer: Callable[[list], Any] = list

So I could run the code successfully , thx

Alright, thank you for bringing up the issue. I will do a follow-up shortly to fix the other pickling error against the main branch.

This might lead to a release 1.4.1 if there are environment changes in the fix.