GUDHI / gudhi-devel

The GUDHI library is a generic open source C++ library, with a Python interface, for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding.
https://gudhi.inria.fr/
MIT License
249 stars 65 forks source link

GudhUI will not compile because of alleged missing Qt5 components, despite Qt being installed. #241

Open ChemGuy88 opened 4 years ago

ChemGuy88 commented 4 years ago

I compiled GUDHI, but the UI part did not compile.

++ GudhUI will not be compiled because Qt5 COMPONENTS Widgets  Xml OpenGL are not found

I've installed qt via brew, which I thought would satisfy the requirements, but it did not.

brew install qt

I'm asking for clarification on whether Widgets, Xml, and OpenGL are included in Qt5, and if I can download Qt5 through brew.

Also, I have done the following, but none make the error go away:

brew cask install qt-design-studio
brew cask install qt-creator
mglisse commented 4 years ago

Hello, thank you for your report. First, if you don't specifically mean to use the edge-contraction algorithm on skeleton-blocker datastructure, you can probably ignore GudhUI. Did cmake say anything interesting before that? Did cmake find parts of Qt5 but not some components, or did it not find it at all? You can use cmake-gui or ccmake to examine the result. Maybe you just need to tell it where Qt is with Qt5_DIR. You could check if there are files with a name similar to libQt5Widgets.so.5 (maybe .dylib on mac?) in your brew directory, same with xml and opengl. I am not a pro of cmake, the first thing that comes to mind is running cmake with the --trace option, and looking at the parts that talk about Qt...

VincentRouvreau commented 4 years ago

I reproduced the issue on a OSx virtual machine. I know it also requires opengl. I did brew install glfw but it doesn't help. [EDIT] I found a fix in this really long thread (update the path regarding your configuration): brew link --force qt5 && sudo ln -s /usr/local/Cellar/qt/5.14.1/mkspecs /usr/local/mkspecs && sudo ln -s /usr/local/Cellar/qt/5.14.1/plugins /usr/local/plugins Then you need to install QGLviewer

ChemGuy88 commented 4 years ago

Thanks to both @mglisse and @VincentRouvreau for their replies. First comes my response to mglisee, and then a response to VincentRouvreau.

CMake

I reduced the number of missing Qt5 components to just QGLViewer since my last post by erasing CMakeCache.txt and refreshing $PATH$. I installed QGLViewer according to the Mac OS X instructions in the QGLViewer website.

Did cmake say anything interesting before that?

Previously I got the following output with some CMake warnings, most of which I was able to avoid by implementing this solution from StackOverflow.

(base) 06:00 PM [4] ~/Library/Python/3.7/lib/python/site-packages/gudhi/build --> cmake -DPython_ADDITIONAL_VERSIONS=3 ..
-- The C compiler identification is AppleClang 11.0.0.11000033
-- The CXX compiler identification is AppleClang 11.0.0.11000033
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting Ccompiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GUDHI version : 3.1.1

CMake Warning at /usr/local/lib/cmake/boost_system-1.72.0/libboost_system-variant-shared.cmake:64 (message):
  Target Boost::system already has an imported location
  '/usr/local/lib/libboost_system-mt.dylib', which will be overwritten with
  '/usr/local/lib/libboost_system.dylib'
Call Stack (most recent call first):
  /usr/local/lib/cmake/boost_system-1.72.0/boost_system-config.cmake:57 (include)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
  /usr/local/Cellar/cmake/3.16.5/share/cmake/Modules/FindBoost.cmake:443 (find_package)
  src/cmake/modules/GUDHI_third_party_libraries.cmake:3 (find_package)
  CMakeLists.txt:17 (include)

CMake Warning at /usr/local/lib/cmake/boost_filesystem-1.72.0/libboost_filesystem-variant-shared.cmake:64 (message):
  Target Boost::filesystem already has an imported location
  '/usr/local/lib/libboost_filesystem-mt.dylib', which will be overwritten
  with '/usr/local/lib/libboost_filesystem.dylib'
Call Stack (most recent call first):
  /usr/local/lib/cmake/boost_filesystem-1.72.0/boost_filesystem-config.cmake:57 (include)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
  /usr/local/Cellar/cmake/3.16.5/share/cmake/Modules/FindBoost.cmake:443 (find_package)
  src/cmake/modules/GUDHI_third_party_libraries.cmake:3 (find_package)
  CMakeLists.txt:17 (include)

CMake Warning at /usr/local/lib/cmake/boost_unit_test_framework-1.72.0/libboost_unit_test_framework-variant-shared.cmake:64 (message):
  Target Boost::unit_test_framework already has an imported location
  '/usr/local/lib/libboost_unit_test_framework-mt.dylib', which will be
  overwritten with '/usr/local/lib/libboost_unit_test_framework.dylib'
Call Stack (most recent call first):
  /usr/local/lib/cmake/boost_unit_test_framework-1.72.0/boost_unit_test_framework-config.cmake:57 (include)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
  /usr/local/Cellar/cmake/3.16.5/share/cmake/Modules/FindBoost.cmake:443 (find_package)
  src/cmake/modules/GUDHI_third_party_libraries.cmake:3 (find_package)
  CMakeLists.txt:17 (include)

CMake Warning at /usr/local/lib/cmake/boost_program_options-1.72.0/libboost_program_options-variant-shared.cmake:64 (message):
  Target Boost::program_options already has an imported location
  '/usr/local/lib/libboost_program_options-mt.dylib', which will be
  overwritten with '/usr/local/lib/libboost_program_options.dylib'
Call Stack (most recent call first):
  /usr/local/lib/cmake/boost_program_options-1.72.0/boost_program_options-config.cmake:57 (include)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package)
  /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
  /usr/local/Cellar/cmake/3.16.5/share/cmake/Modules/FindBoost.cmake:443 (find_package)
  src/cmake/modules/GUDHI_third_party_libraries.cmake:3 (find_package)
  CMakeLists.txt:17 (include)

-- Found Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found suitable version "1.72.0", minimum required is "1.56.0") found components: system filesystem unit_test_framework program_options thread
-- Found GMP: /usr/local/lib/libgmp.dylib  
-- Found GMPXX: /usr/local/lib/libgmpxx.dylib  
-- Using header-only CGAL
-- Targetting Unix Makefiles
-- Using /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ compiler.
-- DARWIN_VERSION=19
-- Mac Leopard detected
-- Found MPFR: /usr/local/lib/libmpfr.dylib  
-- Found Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found suitable version "1.72.0", minimum required is "1.48")  
-- Boost include dirs: /usr/local/include
-- Boost libraries:    
-- CGAL version: 5.00.2.100.
-- Build type:
-- USING CXXFLAGS = ' '
-- USING EXEFLAGS = ' '
-- Requested component: MPFR
-- Requested component: GMPXX
-- Requested component: GMP
-- Found Eigen3: /usr/local/include/eigen3 (found suitable version "3.3.7", minimum required is "3.1.0") diff found in /usr/bin/diff
-- boost include dirs:/usr/local/include
-- boost library dirs:/usr/local/lib
-- Found PythonInterp: /Users/herman/opt/anaconda3/bin/python3 (found version "3.7.4")
++ Python module cython - Version 0.29.13 found
++ Python module pytest - Version 5.2.1 found
++ Python module matplotlib - Version 3.1.1 found
++ Python module numpy - Version 1.17.2 found
++ Python module scipy - Version 1.3.1 found
++ Python module sphinx - Version 2.2.0 found
++ Python module sklearn - Version 0.21.3 found
PYTHON_MODULE_NAME = ot
     - PYTHON_MODULE_RESULT = 1
     - PYTHON_MODULE_VERSION =
     - PYTHON_MODULE_ERROR = Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'ot'

-- Checking to see if CXX compiler accepts flag -Wall
-- Checking to see if CXX compiler accepts flag -Wall - yes
-- Performing Test GUDHI_CAN_USE_CXX11_THREAD_LOCAL_RESULT
-- Performing Test GUDHI_CAN_USE_CXX11_THREAD_LOCAL_RESULT - Failed
++ Release compilation flags are:  -Wall -pedantic -O3 -DNDEBUG
++ GUDHI_SUB_DIRECTORIES list is:";test;utilities"
++ GudhUI will not be compiled because QGLViewer is not found
-- Performing Test CGAL_CAN_USE_CXX11_THREAD_LOCAL_RESULT
-- Performing Test CGAL_CAN_USE_CXX11_THREAD_LOCAL_RESULT - Failed
++ /usr/local/lib/libboost_thread-mt.dylib => UNIX_LIB_FILE_NAME = boost_thread-mt
** Add Boost /usr/local/lib
++ /usr/local/lib/libgmp.dylib => UNIX_LIB_FILE_NAME = gmp
** Add gmp /usr/local/lib
++ /usr/local/lib/libgmpxx.dylib => UNIX_LIB_FILE_NAME = gmpxx
** Add gmpxx /usr/local/lib
++ /usr/local/lib/libmpfr.dylib => UNIX_LIB_FILE_NAME = mpfr
** Add mpfr /usr/local/lib/libmpfr.dylib
++ Python documentation module will not be compiled because POT was not found
++ GUDHI_MODULES list is:"common;Alpha_complex;Bitmap_cubical_complex;Bottleneck_distance;Contraction;Cech_complex;Hasse_complex;Persistence_representations;Persistent_cohomology;Rips_complex;Simplex_tree;Skeleton_blocker;Spatial_searching;Subsampling;Tangential_complex;Toplex_map;Witness_complex;Nerve_GIC;python"
++ GUDHI_MISSING_MODULES list is:"GudhUI;python-documentation;cpp-documentation" CMake Warning at /usr/local/lib/cmake/CGAL/CGAL_enable_end_of_configuration_hook.cmake:99 (message):
  =======================================================================

  CGAL performance notice:

  The variable CMAKE_BUILD_TYPE is set to "".  For performance reasons, you
  should set CMAKE_BUILD_TYPE to "Release".

  Set CGAL_DO_NOT_WARN_ABOUT_CMAKE_BUILD_TYPE to TRUE if you want to disable
  this warning.

  =======================================================================
Call Stack (most recent call first):
  CMakeLists.txt:9999 (CGAL_run_at_the_end_of_configuration)

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/herman/Library/Python/3.7/lib/python/site-packages/gudhi/build

Did cmake find parts of Qt5 but not some components, or did it not find it at all? You can use cmake-gui or ccmake to examine the result.

Originally the only message I got regarding Qt5 was the one in my original post (its components were missing). But running cmake again with the commands you recommended I get the following:

  1. I don't have cmake-gui installed, so I couldn't try it out.
  2. I run ccmake with the c (configure) option and get the following output:

    BUILD_TESTING                   *OFF                                                                                                           
    Boost_FILESYSTEM_LIBRARY_RELEA  */usr/local/lib/libboost_filesystem-mt.dylib                                                                   
    Boost_INCLUDE_DIR               */usr/local/include                                                                                            
    Boost_PROGRAM_OPTIONS_LIBRARY_  */usr/local/lib/libboost_program_options-mt.dylib                                                              
    Boost_SYSTEM_LIBRARY_RELEASE    */usr/local/lib/libboost_system-mt.dylib                                                                       
    Boost_THREAD_LIBRARY_RELEASE    */usr/local/lib/libboost_thread-mt.dylib                                                                       
    Boost_UNIT_TEST_FRAMEWORK_LIBR  */usr/local/lib/libboost_unit_test_framework-mt.dylib                                                          
    CGAL_CTEST_DISPLAY_MEM_AND_TIM  *OFF                                                                                                           
    CGAL_DEV_MODE                   *OFF                                                                                                           
    CGAL_DIR                        */usr/local/lib/cmake/CGAL                                                                                     
    CGAL_TEST_DRAW_FUNCTIONS        *OFF                                                                                                           
    CGAL_WITH_GMPXX                 *OFF                                                                                                           
    CMAKE_BUILD_TYPE                *                                                                                                              
    CMAKE_EXECUTABLE_FORMAT         *MACHO                                                                                                         
    CMAKE_INSTALL_PREFIX            */usr/local                                                                                                    
    CMAKE_OSX_ARCHITECTURES         *                                                                                                              
    CMAKE_OSX_DEPLOYMENT_TARGET     *                                                                                                              
    CMAKE_OSX_SYSROOT               */Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk           
    DIFF_PATH                       */usr/bin/diff                                                                                                 
    EIGEN3_INCLUDE_DIR              */usr/local/include/eigen3                                                                                     
    GCOVR_PATH                      *GCOVR_PATH-NOTFOUND                                                                                           
    GIT_EXECUTABLE                  */usr/bin/git                                                                                                  
    GMPXX_INCLUDE_DIR               */usr/local/include                                                                                            
    GMPXX_LIBRARIES                 */usr/local/lib/libgmpxx.dylib                                                                                 
    GMPXX_LIBRARIES_DIR             */usr/local/lib                                                                                                
    GMP_INCLUDE_DIR                 */usr/local/include                                                                                            
    GMP_LIBRARIES                   */usr/local/lib/libgmp.dylib                                                                                   
    GMP_LIBRARIES_DIR               */usr/local/lib                                                                                                
    GNUPLOT_PATH                    *GNUPLOT_PATH-NOTFOUND                                                                                         
    GPROF_PATH                      *GPROF_PATH-NOTFOUND                                                                                           
    MPFR_INCLUDE_DIR                */usr/local/include                                                                                            
    MPFR_LIBRARIES                  */usr/local/lib/libmpfr.dylib                                                                                  
    MPFR_LIBRARIES_DIR              */usr/local/lib                                                                                                
    QGLVIEWER_INCLUDE_DIR           *QGLVIEWER_INCLUDE_DIR-NOTFOUND                                                                                
    QGLVIEWER_LIBRARY_DEBUG         *QGLVIEWER_LIBRARY_DEBUG-NOTFOUND                                                                              
    QGLVIEWER_LIBRARY_RELEASE       *QGLVIEWER_LIBRARY_RELEASE-NOTFOUND                                                                            
    Qt5Core_DIR                     */usr/local/opt/qt/lib/cmake/Qt5Core                                                                           
    Qt5Gui_DIR                      */usr/local/opt/qt/lib/cmake/Qt5Gui                                                                            
    Qt5OpenGL_DIR                   */usr/local/opt/qt/lib/cmake/Qt5OpenGL                                                                         
    Qt5Widgets_DIR                  */usr/local/opt/qt/lib/cmake/Qt5Widgets                                                                        
    Qt5Xml_DIR                      */usr/local/opt/qt/lib/cmake/Qt5Xml                                                                            
    Qt5_DIR                         */usr/local/opt/qt/lib/cmake/Qt5                                                                               
    SPHINX_PATH                     */Users/herman/Library/Python/3.7/bin/sphinx-build                                                             
    WITH_GUDHI_BENCHMARK            *OFF                                                                                                           
    WITH_GUDHI_BOOST_TEST_COVERAGE  *OFF                                                                                                           
    WITH_GUDHI_EXAMPLE              *OFF                                                                                                           
    WITH_GUDHI_PYTHON               *ON                                                                                                            
    WITH_GUDHI_PYTHON_RUNTIME_LIBR  *ON                                                                                                            
    WITH_GUDHI_TEST                 *ON                                                                                                            
    WITH_GUDHI_USE_TBB              *ON                                                                                                            
    WITH_GUDHI_UTILITIES            *ON                                                                                                            
    WITH_MODULE_GUDHI_Alpha_comple  *ON                                                                                                            
    WITH_MODULE_GUDHI_Bitmap_cubic  *ON                                                                                                            
    WITH_MODULE_GUDHI_Bottleneck_d  *ON                                                                                                            
    WITH_MODULE_GUDHI_Cech_complex  *ON                                                                                                            
    WITH_MODULE_GUDHI_Contraction   *ON                                                                                                            
    WITH_MODULE_GUDHI_Hasse_comple  *ON                                                                                                            
    WITH_MODULE_GUDHI_Nerve_GIC     *ON                                                                                                            
    WITH_MODULE_GUDHI_Persistence_  *ON                                                                                                            
    WITH_MODULE_GUDHI_Persistent_c  *ON                                                                                                            
    WITH_MODULE_GUDHI_Rips_complex  *ON                                                                                                            
    WITH_MODULE_GUDHI_Simplex_tree  *ON                                                                                                            
    WITH_MODULE_GUDHI_Skeleton_blo  *ON                                                                                                            
    WITH_MODULE_GUDHI_Spatial_sear  *ON                                                                                                            
    WITH_MODULE_GUDHI_Subsampling   *ON                                                                                                            
    WITH_MODULE_GUDHI_Tangential_c  *ON                                                                                                            
    WITH_MODULE_GUDHI_Toplex_map    *ON                                                  

Maybe you just need to tell it where Qt is with Qt5_DIR.

How do I do that?

You could check if there are files with a name similar to libQt5Widgets.so.5 (maybe .dylib on mac?) in your brew directory, same with xml and opengl.

find /usr/local/Homebrew/Library/Taps/homebrew -name "libQt5*"
# no results
find /usr/local/Homebrew -name "libQt5*"
# no results
find /usr/local/Cellar -name "libQt5*"
# Returns the following:
/usr/local/Cellar/qt/5.14.1/lib/libQt5DeviceDiscoverySupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5QmlDebug.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5EdidSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5PacketProtocol.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5EdidSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5PlatformCompositorSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5FontDatabaseSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5UiTools.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5GraphicsSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5GraphicsSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5ClipboardSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5ThemeSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5QmlDebug.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5DeviceDiscoverySupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5QmlDevTools.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5UiTools.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5FontDatabaseSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5QmlDevTools.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5ThemeSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5ServiceSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5PacketProtocol.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5EventDispatcherSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5Bootstrap.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5ServiceSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5ClipboardSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5Bootstrap.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5OpenGLExtensions.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5FbSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5AccessibilitySupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5PlatformCompositorSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5FbSupport.a
/usr/local/Cellar/qt/5.14.1/lib/libQt5EventDispatcherSupport.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5OpenGLExtensions.prl
/usr/local/Cellar/qt/5.14.1/lib/libQt5AccessibilitySupport.prl

I am not a pro of cmake, the first thing that comes to mind is running cmake with the --trace option, and looking at the parts that talk about Qt...

cd /Users/herman/Library/Python/3.7/lib/python/site-packages/gudhi
cmake --trace -DPython_ADDITIONAL_VERSIONS=3 ..

Returns this output with over 15,000 lines and 3207 mentions of "Qt5" (2.4 MB text file).

Fixing Homebrew links

# brew install glfw
brew link --force qt5 && sudo ln -s /usr/local/Cellar/qt/5.14.1/mkspecs /usr/local/mkspecs && ln -s /usr/local/Cellar/qt/5.14.1/plugins /usr/local/plugins
brew link --force qt5 && ln -s /usr/local/Cellar/qt/5.14.1/plugins /usr/local/plugins
cd ~/libQGLViewer-2.7.2/
qmake -spec macx-xcode
# Output:
Info: creating stash file /Users/herman/libQGLViewer-2.7.2/.qmake.stash
Info: creating cache file /Users/herman/libQGLViewer-2.7.2/.qmake.cache
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/QGLViewer/QGLViewer.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/designerPlugin/qglviewerplugin.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/animation/animation.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/callback/callback.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/cameraLight/cameraLight.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/clippingPlane/clippingPlane.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/constrainedCamera/constrainedCamera.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/constrainedFrame/constrainedFrame.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/drawLight/drawLight.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/fastDraw/fastDraw.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/frameTransform/frameTransform.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/frustumCulling/frustumCulling.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/interface/interface.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/keyboardAndMouse/keyboardAndMouse.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/keyFrames/keyFrames.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/luxo/luxo.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/manipulatedFrame/manipulatedFrame.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/mouseGrabber/mouseGrabber.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/multiSelect/multiSelect.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/multiView/multiView.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/overpainting/overpainting.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/screenCoordSystem/screenCoordSystem.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/select/select.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/simpleViewer/simpleViewer.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/standardCamera/standardCamera.xcodeproj'
WARNING: Ignored (not found) '/Users/herman/libQGLViewer-2.7.2/examples/stereoViewer/stereoViewer.xcodeproj'

I tried to run cmake again despite the warnings from the QGLViewer install, but CMake says that the Gudhi UI was still not installed. Maybe I need to pass -CMAKE_BUILD_TYPE="Release"? What is the syntax to do that? Is it like this:

cmake -DPython_ADDITIONAL_VERSIONS=3 -CMAKE_BUILD_TYPE="Release" .. ?

VincentRouvreau commented 4 years ago

cmake -DPython_ADDITIONAL_VERSIONS=3 -CMAKE_BUILD_TYPE=Release .. will fix the CGAL warning (should be better documented on our side - cf. #87 ). From what I see in your logs, Qt5 is well installed. CMakeLists.txt says find_package(Qt5 COMPONENTS Widgets Xml OpenGL QUIET) and ccmake on your side clearly shows them:

Qt5OpenGL_DIR                   */usr/local/opt/qt/lib/cmake/Qt5OpenGL                                                                         
Qt5Widgets_DIR                  */usr/local/opt/qt/lib/cmake/Qt5Widgets                                                                        
Qt5Xml_DIR                      */usr/local/opt/qt/lib/cmake/Qt5Xml                                                                            

GudhUI is not compiled because of qglviewer. I will try to install it on my VM and will let you know.

VincentRouvreau commented 4 years ago

I installed libQGLViewer this way:

cd install/libQGLViewer-2.7.2/QGLViewer/
qmake -spec macx-g++ PREFIX=/usr/local
make
sudo make install

CMake did not manage to find QGLViewer that has been installed in /usr/local/lib/QGLViewer.framework/. You can hard code the path in the CMake command this way: cmake -DPython_ADDITIONAL_VERSIONS=3 -CMAKE_BUILD_TYPE=Release -DQGLVIEWER_INCLUDE_DIR=/usr/local/lib/QGLViewer.framework/Headers .. If I understand well, there should be an environment variable QGLVIEWERROOT that should be set by the QGLViewer installer and it is not done.

VincentRouvreau commented 4 years ago

And now I am facing this bug that can be easily workarounded, but that I have to fix.

ChemGuy88 commented 4 years ago

Thanks again @VincentRouvreau for helping me out with this issue.

Installing QGLviewer

I tried

qmake -spec macx-g++ PREFIX=/usr/local

But it gave me this output and error:

Info: creating stash file /Users/herman/install/libQGLViewer-2.7.2/QGLViewer/.qmake.stash
Project ERROR: failed to parse default search paths from compiler output

According to some online sources[1][2] the "preferred compiler" on mac OS is clang, so I tried something different and did the following.

qmake -spec macx-clang PREFIX=/usr/local # Returns no output.
make                                     # Returns over 700 lines of output, which are attached (makeOutput.txt)
sudo make install                        # returns over 200 lines of output, which are attached (makeInstallOutput.txt)

Compiling GudhUI

According to the CMake documentation all the options need to be prefixed with -D. (Scroll down to "Create or update a CMake CACHE entry" in the linked documentation.)

cmake -DPython_ADDITIONAL_VERSIONS=3 -DCMAKE_BUILD_TYPE=Release -DQGLVIEWER_INCLUDE_DIR=/usr/local/lib/QGLViewer.framework/Headers ..

The entire output is below.

I don't get the bug you describe, but when I try to run an example in IPython3 I get the following:

In [1]: %run ~/Downloads/rips_complex_from_points_example.py
#####################################################################
RipsComplex creation from points
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/Users/herman/Downloads/rips_complex_from_points_example.py in <module>()
     19 print("#####################################################################")
     20 print("RipsComplex creation from points")
---> 21 rips = gudhi.RipsComplex(points=[[0, 0], [1, 0], [0, 1], [1, 1]], max_edge_length=42)
     22
     23 simplex_tree = rips.create_simplex_tree(max_dimension=1)

AttributeError: module 'gudhi' has no attribute 'RipsComplex'

Is this part of the same issue or should I open a new one?

CMake output for GUDHI:

-- The C compiler identification is AppleClang 11.0.0.11000033
-- The CXX compiler identification is AppleClang 11.0.0.11000033
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GUDHI version : 3.1.1
-- Found Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found suitable version "1.72.0", minimum required is "1.56.0") found components: system filesystem unit_test_framework program_options thread
-- Found GMP: /usr/local/lib/libgmp.dylib  
-- Found GMPXX: /usr/local/lib/libgmpxx.dylib  
-- Using header-only CGAL
-- Targetting Unix Makefiles
-- Using /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ compiler.
-- DARWIN_VERSION=19
-- Mac Leopard detected
-- Found MPFR: /usr/local/lib/libmpfr.dylib  
-- Found Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found suitable version "1.72.0", minimum required is "1.48")  
-- Boost include dirs: /usr/local/include
-- Boost libraries:    
-- CGAL version: 5.00.2.100.
-- Build type: Release
-- USING CXXFLAGS = ' -O3 -DNDEBUG'
-- USING EXEFLAGS = ' '
-- Requested component: MPFR
-- Requested component: GMPXX
-- Requested component: GMP
-- Found Eigen3: /usr/local/include/eigen3 (found suitable version "3.3.7", minimum required is "3.1.0")
diff found in /usr/bin/diff
-- boost include dirs:/usr/local/include
-- boost library dirs:/usr/local/lib
-- Found PythonInterp: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 (found version "3.7.3")
++ Python module cython - Version 0.29.15 found
++ Python module pytest - Version 5.3.5 found
++ Python module matplotlib - Version 3.1.1 found
++ Python module numpy - Version 1.16.4 found
++ Python module scipy - Version 1.3.0 found
++ Python module sphinx - Version 2.4.3 found
++ Python module sklearn - Version 0.22.1 found
++ Python module ot - Version 0.6.0 found
-- Checking to see if CXX compiler accepts flag -Wall
-- Checking to see if CXX compiler accepts flag -Wall - yes
-- Performing Test GUDHI_CAN_USE_CXX11_THREAD_LOCAL_RESULT
-- Performing Test GUDHI_CAN_USE_CXX11_THREAD_LOCAL_RESULT - Failed
++ Release compilation flags are:  -Wall -pedantic -O3 -DNDEBUG
++ GUDHI_SUB_DIRECTORIES list is:";test;utilities"
-- Performing Test CGAL_CAN_USE_CXX11_THREAD_LOCAL_RESULT
-- Performing Test CGAL_CAN_USE_CXX11_THREAD_LOCAL_RESULT - Failed
++ /usr/local/lib/libboost_thread-mt.dylib => UNIX_LIB_FILE_NAME = boost_thread-mt
** Add Boost /usr/local/lib
++ /usr/local/lib/libgmp.dylib => UNIX_LIB_FILE_NAME = gmp
** Add gmp /usr/local/lib
++ /usr/local/lib/libgmpxx.dylib => UNIX_LIB_FILE_NAME = gmpxx
** Add gmpxx /usr/local/lib
++ /usr/local/lib/libmpfr.dylib => UNIX_LIB_FILE_NAME = mpfr
** Add mpfr /usr/local/lib/libmpfr.dylib
++ GUDHI_MODULES list is:"common;Alpha_complex;Bitmap_cubical_complex;Bottleneck_distance;Contraction;Cech_complex;Hasse_complex;Persistence_representations;Persistent_cohomology;Rips_complex;Simplex_tree;Skeleton_blocker;Spatial_searching;Subsampling;Tangential_complex;Toplex_map;Witness_complex;Nerve_GIC;GudhUI;python-documentation;python"
++ GUDHI_MISSING_MODULES list is:"cpp-documentation"
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/herman/Library/Python/3.7/lib/python/site-packages/gudhi/build
mglisse commented 4 years ago

Did you stop after cmake? That's just the configuration step (like qmake), then you actually need to build, see the installation instructions.

VincentRouvreau commented 4 years ago

Compiling GudhUI (a Qt/C++ user interface for gudhi) is different from the Python module (the gudhi python module). It seems you confuse both. What I see from the cmake logs, you can now compile GudhUI, you have all the required dependencies. To fix your python issue while playing the example:

cd /your/gudhi/path/build/src/python # or cd /your/gudhi/path/build/python
make
export PYTHONPATH="/your/gudhi/path/build/src/python:$PYTHONPATH" # or export PYTHONPATH="/your/gudhi/path/build/python:$PYTHONPATH"
python3
>>> import gudhi
# Shall report no error
ChemGuy88 commented 4 years ago

Output_Gudhi_cmake.txt Output_Gudhi_make.txt

I did confuse Gudhi with its python package. I tried to install the python package since it seemed it would be simple, but I'm also having problems with it so now I'm troubleshooting both installations to see which one works first.

Installing Gudhi

Did you stop after cmake? That's just the configuration step (like qmake), then you actually need to build, see the installation instructions.

When I run

cd ~/gudhi/
mkdir build
cd build/
cmake -DPython_ADDITIONAL_VERSIONS=3 -DCMAKE_BUILD_TYPE=Release -DQGLVIEWER_INCLUDE_DIR=/usr/local/lib/QGLViewer.framework/Headers -DWITH_GUDHI_EXAMPLE=ON ..
make

I get this output for cmake

and this output for make (returns 2 warnings and 1 error).

Installing Gudhi Python Package Via Miniconda

@VincentRouvreau, I run

conda install -c conda-forge gudhi

and I see the python package installed at /usr/local/Caskroom/miniconda/base/, but in IPython3 when I type gu, it won't autocomplete to gudhi. Compare to when I type nu, it will autocomplete to numpy. If I type in gudhi, it doesn't return an error, but I still can't run the example.

AttributeError: module 'gudhi' has no attribute 'RipsComplex'
In [2]: gudhi
Out[2]: <module 'gudhi' (namespace)>
VincentRouvreau commented 4 years ago

@VincentRouvreau, I run

conda install -c conda-forge gudhi

and I see the python package installed at /usr/local/Caskroom/miniconda/base/, but in IPython3 when I type gu, it won't autocomplete to gudhi. Compare to when I type nu, it will autocomplete to numpy. If I type in gudhi, it doesn't return an error, but I still can't run the example.

AttributeError: module 'gudhi' has no attribute 'RipsComplex'
In [2]: gudhi
Out[2]: <module 'gudhi' (namespace)>

Quite strange... Do you see gudhi when you do:

conda list

You shall see something like

...
gudhi                     3.1.1            py36hb3f55d8_0    conda-forge
...
ChemGuy88 commented 4 years ago

Sorry I've been gone the last few days. I've been distracted with the virus outbreak, and it's supposed to be spring break...

Calling conda list gives me

gudhi                     3.1.1            py37he63e17b_1    conda-forge
VincentRouvreau commented 4 years ago

Same here with virus outbreak, and no school for the children...

Ok so now what do you have in your folder /usr/local/Caskroom/miniconda/pkgs/gudhi-3.1.1-py37he63e17b_1/lib/python3.7/site-packages/gudhi ?

If it does not exist, you can find it by doing:

find /usr/local/Caskroom/miniconda -name gudhi

It shall contain some .py files and some .dylib, if I remember well how it is named on OSx.

mglisse commented 4 years ago

Just some very basic checks:

I see the python package installed at /usr/local/Caskroom/miniconda/base/, but in IPython3

Are you running the ipython3 provided by miniconda?

when I type gu, it won't autocomplete to gudhi

You mean after doing import gudhi, right? And you aren't running ipython3 from a directory that contains a subdirectory named gudhi?

ChemGuy88 commented 4 years ago

I was able to run an example by adding the miniconda python paths to my preferred instance of python. The work-around was to add the path of the gudhi modules in miniconda to the list of paths of my preferred python instance. I'm wondering if this is the best fix, however. Details below.

@mglisse

Just some very basic checks:

I see the python package installed at /usr/local/Caskroom/miniconda/base/, but in IPython3

Are you running the ipython3 provided by miniconda?

which ipython3

returns

/Users/herman/Library/Python/3.7/bin/ipython3

But, going off of your suspicion, I did the following:

/usr/local/Caskroom/miniconda/base/bin/python /Users/herman/Downloads/rips_complex_from_points_example.py

which returns

#####################################################################
RipsComplex creation from points
filtrations= [([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 1.0), ([0, 2], 1.0), ([1, 3], 1.0), ([2, 3], 1.0), ([1, 2], 1.4142135623730951), ([0, 3], 1.4142135623730951)]
star([0])= [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0), ([0, 3], 1.4142135623730951)]
coface([0], 1)= [([0, 1], 1.0), ([0, 2], 1.0), ([0, 3], 1.4142135623730951)]

So I guess the problem has something to do with the paths. By the way, as far as I know, I have

I also had

So I guess the solution would involve adding the miniconda packages path to the path of my preferred Python instance.

miniconda python paths:

/usr/local/Caskroom/miniconda/base/bin/python
>>> import sys
>>> for x in sys.path:
...   print(x)
...

commonpath1
commonpath2
commonpath3
/usr/local/Caskroom/miniconda/base/lib/python37.zip # starting here these are different
/usr/local/Caskroom/miniconda/base/lib/python3.7
/usr/local/Caskroom/miniconda/base/lib/python3.7/lib-dynload
/Users/herman/.local/lib/python3.7/site-packages
/usr/local/Caskroom/miniconda/base/lib/python3.7/site-packages

iPython 3 paths:

ipython3
In [1]: import sys

In [2]: sys.path
Out[2]:
['',
 'commonpath1',
 'commonpath2',
 'commonpath3',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', # starting here these are different
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
 '/Users/herman/Library/Python/3.7/lib/python/site-packages',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages',
 '/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/extensions',
 '/Users/herman/.ipython',
 '/Users/herman/code/eol_hsrl_python']

Here is my attempt at a solution:

 In [11]: condapaths # typed in the paths manually
 Out[11]:
 ['/usr/local/Caskroom/miniconda/base/lib/python37.zip',
  '/usr/local/Caskroom/miniconda/base/lib/python3.7',
  '/usr/local/Caskroom/miniconda/base/lib/python3.7/lib-dynload',
  '/Users/herman/.local/lib/python3.7/site-packages',
  '/usr/local/Caskroom/miniconda/base/lib/python3.7/site-packages']
 In [12]: sys.path = sys.path + condapaths
 In [13]: sys.path
 Out[13]:
 ['',
 'commonpath1',
 'commonpath2',
 'commonpath3',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
 '/Users/herman/Library/Python/3.7/lib/python/site-packages',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages',
 '/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/extensions',
 '/Users/herman/.ipython',
 '/Users/herman/code/eol_hsrl_python',
 '/usr/local/Caskroom/miniconda/base/lib/python37.zip',
 '/usr/local/Caskroom/miniconda/base/lib/python3.7',
 '/usr/local/Caskroom/miniconda/base/lib/python3.7/lib-dynload',
 '/Users/herman/.local/lib/python3.7/site-packages',
 '/usr/local/Caskroom/miniconda/base/lib/python3.7/site-packages']
 In [14]: %run ~/Downloads/rips_complex_from_points_example.py
#####################################################################
RipsComplex creation from points
filtrations= [([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 1.0), ([0, 2], 1.0), ([1, 3], 1.0), ([2, 3], 1.0), ([1, 2], 1.4142135623730951), ([0, 3], 1.4142135623730951)]
star([0])= [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0), ([0, 3], 1.4142135623730951)]
coface([0], 1)= [([0, 1], 1.0), ([0, 2], 1.0), ([0, 3], 1.4142135623730951)]

Which seems like it is a solution. So I make this permanent by adding the miniconda paths to my PYTHONPATH variable in ".bashrc".

ipython3

returns

Traceback (most recent call last):
Traceback (most recent call last):
  File "/Users/herman/Library/Python/3.7/bin/ipython3", line 5, in <module>
    from IPython import start_ipython
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/core/application.py", line 25, in <module>
    from IPython.core import release, crashhandler
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/core/ultratb.py", line 119, in <module>
    from IPython.core import debugger
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/core/debugger.py", line 37, in <module>
    from IPython.utils import PyColorize, ulinecache
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/utils/PyColorize.py", line 55, in <module>
    from IPython.utils.py3compat import PY3
  File "/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/utils/py3compat.py", line 296, in <module>
    PYPY = platform.python_implementation() == "PyPy"
  File "/usr/local/Caskroom/miniconda/base/lib/python3.7/platform.py", line 1264, in python_implementation
    return _sys_version()[0]
  File "/usr/local/Caskroom/miniconda/base/lib/python3.7/platform.py", line 1225, in _sys_version
    repr(sys_version))
ValueError: failed to parse CPython sys.version: '3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) \n[Clang 6.0 (clang-600.0.57)]'

According to this SO answer, the problem could stem from a bad PYTHONPATH.

So I can add the paths after starting IPython, but not before. So the only solution is to add the minicondapaths to my ipython_config.py file. And indeed this works.

# Add paths to ~/.ipython/profile_default/ipython_config.py
ipython3
In [1]: import sys

In [2]: sys.path
Out[2]:
['',
 'commonpath1',
 'commonpath2',
 'commonpath3',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
 '/Users/herman/Library/Python/3.7/lib/python/site-packages',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages',
 '/Users/herman/Library/Python/3.7/lib/python/site-packages/IPython/extensions',
 '/Users/herman/.ipython',
 '/Users/herman/code/eol_hsrl_python',
 '/usr/local/Caskroom/miniconda/base/lib/python37.zip',
 '/usr/local/Caskroom/miniconda/base/lib/python3.7',
 '/usr/local/Caskroom/miniconda/base/lib/python3.7/lib-dynload',
 '/Users/herman/.local/lib/python3.7/site-packages',
 '/usr/local/Caskroom/miniconda/base/lib/python3.7/site-packages']

In [3]: %run ~/Downloads/rips_complex_from_points_example.py
#####################################################################
RipsComplex creation from points
filtrations= [([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 1.0), ([0, 2], 1.0), ([1, 3], 1.0), ([2, 3], 1.0), ([1, 2], 1.4142135623730951), ([0, 3], 1.4142135623730951)]
star([0])= [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0), ([0, 3], 1.4142135623730951)]
coface([0], 1)= [([0, 1], 1.0), ([0, 2], 1.0), ([0, 3], 1.4142135623730951)]

In [4]:

But I'm worried why I wasn't able to add the paths to PYTHONPATH. This implies some incompatibility, and I don't want it to come and haunt me later.


when I type gu, it won't autocomplete to gudhi

And you aren't running ipython3 from a directory that contains a subdirectory named gudhi?

Are you referring to this directory?

/Users/herman/Library/Python/3.7/lib/python/site-packages

The "gudhi" folder there was from when I confused the GUDHI python package with the regular GUDHI. I have since deleted that "gudhi" folder.

You mean after doing import gudhi, right?

In IPython3, before importing, it will autocomplete names, like for numpy or just about everything else. After adding the miniconda python paths, IPython3 has been able to autocomplete gu to gudhi :+1:


@VincentRouvreau

cd /usr/local/Caskroom/miniconda/base/pkgs/gudhi-3.1.1-py37he63e17b_1/lib/python3.7/site-packages/gudhi
ls

returns

__init__.py                     persistence_graphical_tools.py
__pycache__                     reader_utils.cpython-37m-darwin.so
alpha_complex.cpython-37m-darwin.so         reader_utils.py
alpha_complex.py                    representations
bottleneck.cpython-37m-darwin.so            rips_complex.cpython-37m-darwin.so
bottleneck.py                       rips_complex.py
cubical_complex.cpython-37m-darwin.so           simplex_tree.cpython-37m-darwin.so
cubical_complex.py                  simplex_tree.py
euclidean_strong_witness_complex.cpython-37m-darwin.so  strong_witness_complex.cpython-37m-darwin.so
euclidean_strong_witness_complex.py         strong_witness_complex.py
euclidean_witness_complex.cpython-37m-darwin.so     subsampling.cpython-37m-darwin.so
euclidean_witness_complex.py                subsampling.py
nerve_gic.cpython-37m-darwin.so             tangential_complex.cpython-37m-darwin.so
nerve_gic.py                        tangential_complex.py
off_reader.cpython-37m-darwin.so            wasserstein.py
off_reader.py                       witness_complex.cpython-37m-darwin.so
periodic_cubical_complex.cpython-37m-darwin.so      witness_complex.py
periodic_cubical_complex.py

find /usr/local/Caskroom/miniconda -name gudhi

returns

/usr/local/Caskroom/miniconda/base/include/gudhi
/usr/local/Caskroom/miniconda/base/pkgs/gudhi-3.1.1-py37he63e17b_1/include/gudhi
/usr/local/Caskroom/miniconda/base/pkgs/gudhi-3.1.1-py37he63e17b_1/lib/python3.7/site-packages/gudhi
/usr/local/Caskroom/miniconda/base/pkgs/gudhi-3.1.1-py37he63e17b_1/share/gudhi
/usr/local/Caskroom/miniconda/base/lib/python3.7/site-packages/gudhi
/usr/local/Caskroom/miniconda/base/share/gudhi
sulfierry commented 2 years ago

I compiled GUDHI, but the UI part did not compile.

++ GudhUI will not be compiled because Qt5 COMPONENTS Widgets  Xml OpenGL are not found

I've installed qt via brew, which I thought would satisfy the requirements, but it did not.

brew install qt

I'm asking for clarification on whether Widgets, Xml, and OpenGL are included in Qt5, and if I can download Qt5 through brew.

Also, I have done the following, but none make the error go away:

brew cask install qt-design-studio
brew cask install qt-creator

Hello @ChemGuy88,

try to use: $ sudo apt-get install build-essential $ sudo apt-get install qtcreator $ sudo apt-get install qt5-default

These commands above work for me.