perfectly-balanced / PathBench

Benchmarking Platform for Classic and Learned Path Planning Algorithms.
Other
93 stars 18 forks source link

TypeError: metaclass conflit #71

Closed Hectormxy closed 3 years ago

Hectormxy commented 3 years ago

I have run the following commands on Ubuntu20.04 in Anaconda Environment with python 3.8.10 :

python3 tests/test_graphics/test_labyrinth_A.py --spawn-display --view-display

And I have encountered the following error:

Traceback (most recent call last): File "tests/test_graphics/test_labyrinth_A.py", line 6, in from common import init, destroy, wait_for, take_screenshot File "/home/mao/GVD/DataSet/PathBench/tests/test_graphics/common.py", line 24, in from simulator.services.resources.directory import Directory # noqa: E402 File "/home/mao/GVD/DataSet/PathBench/src/simulator/services/resources/directory.py", line 16, in from simulator.services.resources.smart_unpickle import load as smart_load File "/home/mao/GVD/DataSet/PathBench/src/simulator/services/resources/smart_unpickle.py", line 11, in class Point(NamedTuple, torch.Tensor): TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

I will really appreciate it if anyone would offer me some help.

royzhang12 commented 3 years ago

I have met the same problem and already solved it. The metaconflict might be caused by the version of the torch. The reason might be that they have added some metaclasses into the torch for the lastest version(I am not quite sure as it is just a comment I see from the web). Try to degrade the version of your torch, which might be helpful. I used torch=1.4.0, torchvision=0.5.0. In another way, you can just delete the torch.Tensor from the class point(....), which may also works.