facebookresearch / hanabi_SAD

Simplified Action Decoder for Deep Multi-Agent Reinforcement Learning
Other
96 stars 35 forks source link

ImportError: generic_type: type "HanabiThreadLoop" referenced unknown base type "rela::ThreadLoop" #35

Closed zengya55 closed 11 months ago

zengya55 commented 11 months ago

when I make succeeded(the make progress is below:)

[  5%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_game.cc.o
[ 15%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_hand.cc.o
[ 15%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_history_item.cc.o
[ 20%] Building CXX object rela/CMakeFiles/rela.dir/transition.cc.o
[ 25%] Building CXX object rela/CMakeFiles/rela.dir/pybind.cc.o
[ 30%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_observation.cc.o
[ 35%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_card.cc.o
[ 40%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_move.cc.o
[ 45%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/hanabi_state.cc.o
[ 50%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/util.cc.o
[ 55%] Building CXX object hanabi-learning-environment/hanabi_lib/CMakeFiles/hanabi.dir/canonical_encoders.cc.o
[ 60%] Linking CXX static library libhanabi.a
[ 60%] Built target hanabi
[ 70%] Building CXX object hanabi-learning-environment/CMakeFiles/game_example.dir/game_example.cc.o
[ 70%] Building CXX object hanabi-learning-environment/CMakeFiles/pyhanabi.dir/pyhanabi.cc.o
[ 75%] Linking CXX executable game_example
[ 75%] Built target game_example
[ 80%] Linking CXX shared library libpyhanabi.so
[ 80%] Built target pyhanabi
[ 85%] Linking CXX shared library rela.cpython-37m-x86_64-linux-gnu.so
[ 85%] Built target rela
[ 90%] Building CXX object CMakeFiles/hanalearn.dir/cpp/hanabi_env.cc.o
[ 95%] Building CXX object CMakeFiles/hanalearn.dir/cpp/pybind.cc.o
[100%] Linking CXX shared module hanalearn.cpython-37m-x86_64-linux-gnu.so
[100%] Built target hanalearn

then I run sh tools/dev.sh it turns out :

Traceback (most recent call last):
  File "selfplay.py", line 18, in <module>
    from create import create_envs, create_threads, ActGroup
  File "/home/yzeng/hanabi/pyhanabi/create.py", line 19, in <module>
    import hanalearn
ImportError: generic_type: type "HanabiThreadLoop" referenced unknown base type "rela::ThreadLoop"

but in CMakeLists:

CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
project(hanalearn)
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS
    "${CMAKE_CXX_FLAGS} -O3 -Wall -Wextra -Wno-register -fPIC -march=native -Wfatal-errors")

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/rela)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/hanabi-learning-environment)

find_package(Torch REQUIRED)

pybind11_add_module(
  hanalearn
  ${CMAKE_CURRENT_SOURCE_DIR}/cpp/hanabi_env.cc
  ${CMAKE_CURRENT_SOURCE_DIR}/cpp/pybind.cc
  ${CMAKE_CURRENT_SOURCE_DIR}/cpp/thread_loop.h
  ${CMAKE_CURRENT_SOURCE_DIR}/cpp/hanabi_env.h
)
target_link_libraries(hanalearn PUBLIC hanabi)
target_link_libraries(hanalearn PUBLIC rela)
target_include_directories(hanalearn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

already linking rela it is so confused. I hope someone can help me. Thanks!

zengya55 commented 11 months ago

I find that the pybind11 is the wrong version.