google-deepmind / mujoco_mpc

Real-time behaviour synthesis with MuJoCo, using Predictive Control
https://github.com/deepmind/mujoco_mpc
Apache License 2.0
1.06k stars 156 forks source link

Building python API stuck at `Using FetchContent to retrieve gRPC` step #317

Closed zhuoqun-chen closed 6 months ago

zhuoqun-chen commented 6 months ago

Description

C/C++ target mjpc already built and I'm trying to build python API via:

cd python
python setup.py install

however, the terminal got stuck at the following step forever:

-- mujoco::FindOrFetch: Using FetchContent to retrieve `gRPC`

Debug info

Full Log

/Users/zqchen/micromamba/envs/mujoco_mpc/lib/python3.12/site-packages/setuptools/__init__.py:81: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
!!

        ********************************************************************************
        Requirements should be satisfied by a PEP 517 installer.
        If you are using pip, you can try `pip install --use-pep517`.
        ********************************************************************************

!!
  dist.fetch_build_eggs(dist.setup_requires)
running install
/Users/zqchen/micromamba/envs/mujoco_mpc/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!
  self.initialize_options()
/Users/zqchen/micromamba/envs/mujoco_mpc/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: EasyInstallDeprecationWarning: easy_install command is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` and ``easy_install``.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://github.com/pypa/setuptools/issues/917 for details.
        ********************************************************************************

!!
  self.initialize_options()
running bdist_egg
running egg_info
creating mujoco_mpc.egg-info
writing mujoco_mpc.egg-info/PKG-INFO
writing dependency_links to mujoco_mpc.egg-info/dependency_links.txt
writing requirements to mujoco_mpc.egg-info/requires.txt
writing top-level names to mujoco_mpc.egg-info/top_level.txt
writing manifest file 'mujoco_mpc.egg-info/SOURCES.txt'
reading manifest file 'mujoco_mpc.egg-info/SOURCES.txt'
writing manifest file 'mujoco_mpc.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-11.0-arm64/egg
running install_lib
running build_py
running generate_proto_grpc
touch /Users/zqchen/work/mujoco_mpc/python/build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc/proto/__init__.py
running copy_task_assets
copying mujoco_mpc/filter_test.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/mjpc_parameters.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/__init__.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/agent_test.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/direct_test.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/ui_agent_test.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/agent.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/filter.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
copying mujoco_mpc/direct.py -> build/lib.macosx-11.0-arm64-cpython-312/mujoco_mpc
running build_ext
Configuring CMake with the following arguments:
  -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE
  -DCMAKE_BUILD_TYPE:STRING=Debug
  -DBUILD_TESTING:BOOL=OFF
  -DMJPC_BUILD_GRPC_SERVICE:BOOL=ON
-- mujoco::FindOrFetch: checking for targets in package `mujoco`
-- mujoco::FindOrFetch: checking for targets in package `mujoco` - target `mujoco::mujoco` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `mujoco`
-- mujoco::FindOrFetch: checking for targets in package `qhull`
-- mujoco::FindOrFetch: checking for targets in package `qhull` - target `qhull` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `qhull`
CMake Deprecation Warning at build/_deps/qhull-src/CMakeLists.txt:70 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- 
-- ========== qhull Build Information ==========
-- Build Version:                             8.1-alpha1
-- Install Prefix (CMAKE_INSTALL_PREFIX):     /usr/local
-- Binary Directory (BIN_INSTALL_DIR):        bin
-- Library Directory (LIB_INSTALL_DIR):       lib
-- Include Directory (INCLUDE_INSTALL_DIR):   include
-- Documentation Directory (DOC_INSTALL_DIR): share/doc/qhull
-- Man Pages Directory (MAN_INSTALL_DIR):     share/man/man1
-- CMake Directory (CMAKE_INSTALL_DIR):       lib/cmake/QHull
-- PkgConfig Directory (PKGCONFIG_INSTALL_DIR):lib/pkgconfig
-- Build Type (CMAKE_BUILD_TYPE):             Debug
-- Build static libraries:                    ON
-- Build shared library:                      OFF
-- Use shared library for linking apps:       OFF
-- Build tests:                            OFF
-- To override these options, add -D{OPTION_NAME}=... to the cmake command
--   Build the debug targets                  -DCMAKE_BUILD_TYPE=Debug
-- 
-- To build and install qhull, enter "make" and "make install"
-- To smoketest qhull, enter "ctest"
-- 
-- mujoco::FindOrFetch: Using FetchContent to retrieve `qhull` - Done
-- mujoco::FindOrFetch: checking for targets in package `tinyxml2`
-- mujoco::FindOrFetch: checking for targets in package `tinyxml2` - target `tinyxml2` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `tinyxml2`
-- mujoco::FindOrFetch: Using FetchContent to retrieve `tinyxml2` - Done
-- mujoco::FindOrFetch: checking for targets in package `tinyobjloader`
-- mujoco::FindOrFetch: checking for targets in package `tinyobjloader` - target `tinyobjloader` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `tinyobjloader`
CMake Deprecation Warning at build/_deps/tinyobjloader-src/CMakeLists.txt:5 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- mujoco::FindOrFetch: Using FetchContent to retrieve `tinyobjloader` - Done
-- mujoco::FindOrFetch: checking for targets in package `sdflib`
-- mujoco::FindOrFetch: checking for targets in package `sdflib` - target `SdfLib` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `sdflib`
CMake Deprecation Warning at build/_deps/glm_lib-src/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at build/_deps/glm_lib-src/CMakeLists.txt:2 (cmake_policy):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench
-- Build spdlog: 1.9.2
-- Build type: Debug
-- Use libc++
-- mujoco::FindOrFetch: Using FetchContent to retrieve `sdflib` - Done
-- mujoco::FindOrFetch: checking for targets in package `ccd`
-- mujoco::FindOrFetch: checking for targets in package `ccd` - target `ccd` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `ccd`
CMake Deprecation Warning at build/_deps/ccd-src/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Warning (dev) at build/_deps/ccd-src/CMakeLists.txt:9 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The following variable(s) would be set to empty:

    PROJECT_VERSION
    PROJECT_VERSION_MAJOR
    PROJECT_VERSION_MINOR
    PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

-- mujoco::FindOrFetch: Using FetchContent to retrieve `ccd` - Done
-- mujoco::FindOrFetch: checking for targets in package `mujoco`
-- mujoco::FindOrFetch: checking for targets in package `mujoco` - found
-- mujoco::FindOrFetch: checking for targets in package `glfw3`
-- mujoco::FindOrFetch: checking for targets in package `glfw3` - target `glfw` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `glfw3`
-- Using Cocoa for window creation
-- mujoco::FindOrFetch: Using FetchContent to retrieve `glfw3` - Done
-- mujoco::FindOrFetch: Using FetchContent to retrieve `mujoco` - Done
-- mujoco::FindOrFetch: checking for targets in package `GTest`
-- mujoco::FindOrFetch: checking for targets in package `GTest` - target `gtest` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `googletest`
-- mujoco::FindOrFetch: Using FetchContent to retrieve `googletest` - Done
-- mujoco::FindOrFetch: checking for targets in package `absl`
-- mujoco::FindOrFetch: checking for targets in package `absl` - target `absl::core_headers` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `abseil-cpp`
-- mujoco::FindOrFetch: Using FetchContent to retrieve `abseil-cpp` - Done
-- mujoco::FindOrFetch: checking for targets in package `glfw`
-- mujoco::FindOrFetch: checking for targets in package `glfw` - found
-- Found ZLIB: /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/lib/libz.tbd (found version "1.2.12")
-- mujoco::FindOrFetch: checking for targets in package `gRPC`
-- mujoco::FindOrFetch: checking for targets in package `gRPC` - target `gRPC` not defined.
-- mujoco::FindOrFetch: Using FetchContent to retrieve `gRPC`
yuvaltassa commented 6 months ago

How long did you wait? gRPC is unfortunately a very large dependency...

thowell commented 6 months ago

@zhuoqun-chen this PR #324 notes that gRPC installation can take some time ~10-20 minutes.