cvg/pyceres

Error when installing

Closed this issue · 8 comments

Hello, thanks for sharing your code.

I've tried to install pyceres but got next output

Obtaining file:///home/daddywesker/3rdPrtyLibs/pyceres
Requirement already satisfied: numpy in /home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages (from pyceres==0.0.0) (1.21.5)
Installing collected packages: pyceres
  Running setup.py develop for pyceres
    ERROR: Command errored out with exit status 1:
     command: /home/daddywesker/anaconda3/envs/AvatarCLIP/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/daddywesker/3rdPrtyLibs/pyceres/setup.py'"'"'; __file__='"'"'/home/daddywesker/3rdPrtyLibs/pyceres/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
         cwd: /home/daddywesker/3rdPrtyLibs/pyceres/
    Complete output (181 lines):
    running develop
    running egg_info
    creating pyceres.egg-info
    writing pyceres.egg-info/PKG-INFO
    writing dependency_links to pyceres.egg-info/dependency_links.txt
    writing requirements to pyceres.egg-info/requires.txt
    writing top-level names to pyceres.egg-info/top_level.txt
    writing manifest file 'pyceres.egg-info/SOURCES.txt'
    reading manifest file 'pyceres.egg-info/SOURCES.txt'
    writing manifest file 'pyceres.egg-info/SOURCES.txt'
    running build_ext
    -- The C compiler identification is GNU 9.4.0
    -- The CXX compiler identification is GNU 9.4.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found METIS: /usr/include (found suitable version "5.1.0", minimum required is "5.1.0")
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    -- Found AMD headers in: /usr/include/suitesparse
    -- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so
    -- Found CAMD headers in: /usr/include/suitesparse
    -- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so
    -- Found CCOLAMD headers in: /usr/include/suitesparse
    -- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so
    -- Found CHOLMOD headers in: /usr/include/suitesparse
    -- Found CHOLMOD library: /usr/lib/x86_64-linux-gnu/libcholmod.so
    -- Found COLAMD headers in: /usr/include/suitesparse
    -- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so
    -- Found SPQR headers in: /usr/include/suitesparse
    -- Found SPQR library: /usr/lib/x86_64-linux-gnu/libspqr.so
    -- Found Config headers in: /usr/include/suitesparse
    -- Found Config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so
    -- Found Intel Thread Building Blocks (TBB) library (2020.1 / 11101) include location: . Assuming SuiteSparseQR was compiled with TBB.
    -- Looking for shm_open in rt
    -- Looking for shm_open in rt - found
    -- Adding librt to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
    -- Found METIS: /usr/include (found version "5.1.0")
    -- Looking for cholmod_metis
    -- Looking for cholmod_metis - found
    -- Found SuiteSparse: /usr/include/suitesparse (found suitable version "5.7.1", minimum required is "5.7.1") found components: AMD CAMD CCOLAMD CHOLMOD COLAMD SPQR Config
    -- Found CUDAToolkit: /usr/local/cuda-11.3/include (found suitable version "11.3.58", minimum required is "11.3.58")
    -- Found required Ceres dependency: Eigen version 3.3.7 in /usr/lib/cmake/eigen3
    -- Found required Ceres dependency: glog
    -- Found required Ceres dependency: gflags
    -- Found Ceres version: 2.2.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, SchurSpecializations, Multithreading]
    -- Found METIS: /usr/include (found suitable version "5.1.0", minimum required is "5.1.0")
    -- Found AMD headers in: /usr/include/suitesparse
    -- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so
    -- Found CAMD headers in: /usr/include/suitesparse
    -- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so
    -- Found CCOLAMD headers in: /usr/include/suitesparse
    -- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so
    -- Found CHOLMOD headers in: /usr/include/suitesparse
    -- Found CHOLMOD library: /usr/lib/x86_64-linux-gnu/libcholmod.so
    -- Found COLAMD headers in: /usr/include/suitesparse
    -- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so
    -- Found SPQR headers in: /usr/include/suitesparse
    -- Found SPQR library: /usr/lib/x86_64-linux-gnu/libspqr.so
    -- Found Config headers in: /usr/include/suitesparse
    -- Found Config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so
    -- Found Intel Thread Building Blocks (TBB) library (2020.1 / 11101) include location: . Assuming SuiteSparseQR was compiled with TBB.
    -- Adding librt to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
    -- Found METIS: /usr/include (found version "5.1.0")
    -- Found required Ceres dependency: Eigen version 3.3.7 in /usr/lib/cmake/eigen3
    CMake Error at /usr/local/lib/cmake/Ceres/FindGlog.cmake:349 (add_library):
      add_library cannot create imported target "glog::glog" because another
      target with the same name already exists.
    Call Stack (most recent call first):
      /usr/local/lib/cmake/Ceres/CeresConfig.cmake:248 (find_package)
      /usr/local/share/colmap/COLMAPConfig.cmake:92 (find_package)
      CMakeLists.txt:14 (find_package)
    
    
    -- Found required Ceres dependency: glog
    -- Found required Ceres dependency: gflags
    -- Found Ceres version: 2.2.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, SchurSpecializations, Multithreading]
    -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: program_options filesystem system unit_test_framework
    -- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
    -- Found Eigen
    --   Includes : /usr/include/eigen3
    -- Found FreeImage
    --   Includes : /usr/include
    --   Libraries : /usr/lib/x86_64-linux-gnu/libfreeimage.so
    -- Found Glog
    --   Includes : /usr/include
    --   Libraries : /usr/lib/x86_64-linux-gnu/libglog.so
    CMake Warning (dev) at /opt/cmake-3.22.0-linux-x86_64/share/cmake-3.22/Modules/FindOpenGL.cmake:315 (message):
      Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
      available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
      cmake_policy command to set the policy and suppress this warning.
    
      FindOpenGL found both a legacy GL library:
    
        OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
    
      and GLVND libraries for OpenGL and GLX:
    
        OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
        OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
    
      OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
      compatibility with CMake 3.10 and below the legacy GL library will be used.
    Call Stack (most recent call first):
      /usr/local/share/colmap/COLMAPConfig.cmake:109 (find_package)
      CMakeLists.txt:14 (find_package)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    -- Found Glew
    --   Includes : /usr/include
    --   Libraries : /usr/lib/x86_64-linux-gnu/libGLEW.so
    -- Using header-only CGAL
    -- Targetting Unix Makefiles
    -- Using /usr/bin/c++ compiler.
    -- Found GMP: /usr/local/lib/libgmp.so
    -- Found MPFR: /usr/local/lib/libmpfr.so
    -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.48")
    -- Boost include dirs: /usr/include
    -- Boost libraries:
    -- Using gcc version 4 or later. Adding -frounding-math
    -- pybind11 v2.8.1
    -- Found PythonInterp: /home/daddywesker/anaconda3/envs/AvatarCLIP/bin/python (found version "3.7.13")
    -- Found PythonLibs: /home/daddywesker/anaconda3/envs/AvatarCLIP/lib/libpython3.7m.so
    -- Performing Test HAS_FLTO
    -- Performing Test HAS_FLTO - Success
    -- Configuring incomplete, errors occurred!
    See also "/home/daddywesker/3rdPrtyLibs/pyceres/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeOutput.log".
    See also "/home/daddywesker/3rdPrtyLibs/pyceres/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeError.log".
    ['cmake', '/home/daddywesker/3rdPrtyLibs/pyceres', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/daddywesker/3rdPrtyLibs/pyceres', '-DPYTHON_EXECUTABLE=/home/daddywesker/anaconda3/envs/AvatarCLIP/bin/python', '-DVERSION_INFO=0.0.0', '-DCMAKE_BUILD_TYPE=Release']
    /home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/command/easy_install.py:147: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
      EasyInstallDeprecationWarning,
    /home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      setuptools.SetuptoolsDeprecationWarning,
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/daddywesker/3rdPrtyLibs/pyceres/setup.py", line 91, in <module>
        install_requires=['numpy'],
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/__init__.py", line 87, in setup
        return distutils.core.setup(**attrs)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 148, in setup
        return run_commands(dist)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
        dist.run_commands()
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
        self.run_command(cmd)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/dist.py", line 1214, in run_command
        super().run_command(command)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
        cmd_obj.run()
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/command/develop.py", line 34, in run
        self.install_for_development()
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/command/develop.py", line 114, in install_for_development
        self.run_command('build_ext')
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/dist.py", line 1214, in run_command
        super().run_command(command)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
        cmd_obj.run()
      File "/home/daddywesker/3rdPrtyLibs/pyceres/setup.py", line 34, in run
        self.build_extension(ext)
      File "/home/daddywesker/3rdPrtyLibs/pyceres/setup.py", line 76, in build_extension
        subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)
      File "/home/daddywesker/anaconda3/envs/AvatarCLIP/lib/python3.7/subprocess.py", line 363, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '/home/daddywesker/3rdPrtyLibs/pyceres', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/daddywesker/3rdPrtyLibs/pyceres', '-DPYTHON_EXECUTABLE=/home/daddywesker/anaconda3/envs/AvatarCLIP/bin/python', '-DVERSION_INFO=0.0.0', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/daddywesker/anaconda3/envs/AvatarCLIP/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/daddywesker/3rdPrtyLibs/pyceres/setup.py'"'"'; __file__='"'"'/home/daddywesker/3rdPrtyLibs/pyceres/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.

In one of the logs error mentioned

/usr/bin/ld: CMakeFiles/cmTC_29694.dir/CheckFunctionExists.c.o: in function `main':
CheckFunctionExists.c:(.text+0x14): undefined reference to `sgemm_'

I've tried to add

find_package(LAPACK REQUIRED)
find_package(BLAS REQUIRED)
target_link_libraries(pyceres PRIVATE ${PYCERES_LIBRARIES} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})

in CMakeLists.txt as it suggested on some sites for this problem but it doesn't help. Any suggestions?

I'm on Linux Mint 20, forgot to say.

I've tried to cmake build this repo to see what else could i know about an issue. Here is what i've got after cmake ..

CMake Error at /usr/local/lib/cmake/Ceres/FindGlog.cmake:349 (add_library):
  add_library cannot create imported target "glog::glog" because another
  target with the same name already exists.
Call Stack (most recent call first):
  /usr/local/lib/cmake/Ceres/CeresConfig.cmake:248 (find_package)
  /usr/local/share/colmap/COLMAPConfig.cmake:92 (find_package)
  CMakeLists.txt:16 (find_package)

Unfortunately, i don't know how to beat it.

O'kay, i've fixed installation by commenting those lines

find_package(Ceres 2.1 REQUIRED)
if(${CERES_VERSION} VERSION_LESS "2.2.0")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
else()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
endif()

Since ceres is already been imported in find_package(COLMAP REQUIRED) because colmap requires ceres. Now i need to check if it is launching.

Well, both examples are working. I guess, selfsolved issue.

hello ! i want to ask for where these code were modified from?

Sorry, I'm not getting what modified codes you are telling about? All I've done is this:

O'kay, i've fixed installation by commenting those lines

find_package(Ceres 2.1 REQUIRED)
if(${CERES_VERSION} VERSION_LESS "2.2.0")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
else()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
endif()

Since ceres is already been imported in find_package(COLMAP REQUIRED) because colmap requires ceres. Now i need to check if it is launching.

Unfortunately, I don't remember. And they've already updated repo since then and fixed this issue (#10)