Skip to content

Installation failure using conda on Ubuntu #207

Open

Description

@1719907882

Hi, I'm trying to install CloudComPy310 using conda on Ubuntu.

I have run git clone
git clone --recurse-submodules https://github.com/CloudCompare/CloudComPy.git
at /home/2001111722/projets/CloudComPy/.

Then I'm having this error:
"
CMake Error at CloudCompare/plugins/core/Standard/qPCL/PclUtils/CMakeLists.txt:5 (find_package):
Could not find a configuration file for package "PCL" that is compatible
with requested version "1.9".

The following configuration files were considered but not accepted:

/lustre/home/2001111722/miniconda3/envs/CloudComPy310/share/pcl-1.8/PCLConfig.cmake, version: 1.8.1

"

After that, I have tried the following 4 repair methods, but all of them failed.

  1. Modify the genCloudComPy_Conda310_Ubuntu2004.sh file to specify pcl=1.9.1, and encountered an error:
    Could not solve for environment specs. The following packages are incompatible ├─ ffmpeg =6.1 * is installable with the potential options...

  2. Modify the genCloudComPy_Conda310_Ubuntu2004.sh file to specify pcl=1.12.1, and encountered a similar compatibility error.

  3. Modify the cmake file in CloudComPy/CloudCompare/plugins/core/Standard/qPCL/PclUtils to specify pcl as 1.8, and encountered a problem:
    CMake Error at CloudCompare/plugins/core/Standard/qMasonry/qAutoSeg/CMakeLists.txt:29 (find_package): Could not find a configuration file for package "PCL" that is compatible with requested version "1.9.1".

  4. Modify qAutoSeg and qManualSeg to specify pcl as 1.8, and encountered a problem:
    CMake Warning:
    Manually-specified variables were not used by the project:

    CMAKE_Fortran_COMPILER
    EIGEN_INCLUDE_DIR
    GMP_LIBRARIES_DIR
    LASLIB_INCLUDE_DIR
    LASLIB_RELEASE_LIBRARY
    LASZIP_LASTOOLS_INCLUDE_DIR
    MPFR_LIBRARIES_DIR
    OPENCASCADE_DLL_DIR
    OpenMP_omp_LIBRARY
    PLUGIN_PYTHON
    TBB_DIR

...

[ 29%] Built target QPOISSON_RECON_LIB
make: *** [Makefile:146: all] Error 2
projets/CloudComPy/CloudComPy/building/genCloudComPy_Conda310_Ubuntu2004.sh: line 181: cd: /lustre/home/2001111722/projets/hydro95/prerequisites/install/Occ-740p3EDFp1/lib: No such file or directory
projets/CloudComPy/CloudComPy/building/genCloudComPy_Conda310_Ubuntu2004.sh: line 185: cd: /lustre/home/2001111722/projets/CloudComPy/pcl/install/lib: No such file or directory
projets/CloudComPy/CloudComPy/building/genCloudComPy_Conda310_Ubuntu2004.sh: line 187: cd: /lustre/home/2001111722/projets/CloudComPy/installConda/CloudComPy310/lib/cloudcompare: No such file or directory

Activity

  1. prascle commented on Apr 23, 2025

    @prascle
    Collaborator

    Hello,

    I'm afraid the genCloudComPy_Conda310_Ubuntu2004.sh script isn't up to date. Conda packages are constantly evolving, and what works at one time may no longer be OK a few months later.
    One way of dealing with this is to set more prerequisite versions in the script. Below is a version that works on Ubuntu 20.04:
    (Note: change paths, disable plugins not based on Conda prerequisites if you haven't built them separately)

    Regards,
    Paul

    #!/bin/bash
    
    export CLOUDCOMPY_SRC=${HOME}/projets/CloudComPy/CloudComPy                            # CloudComPy source directory
    export CLOUDCOMPY_BUILD=${HOME}/projets/CloudComPy/buildConda310                       # CloudComPy build directory
    export CLOUDCOMPY_INSTDIR=${HOME}/projets/CloudComPy/installConda                      # directory for CloudComPy installs
    export CLOUDCOMPY_INSTNAME=CloudComPy310                                               # CloudComPy install directory name
    export CLOUDCOMPY_INSTALL=${CLOUDCOMPY_INSTDIR}/${CLOUDCOMPY_INSTNAME}                 # CloudComPy install directory
    export CLOUDCOMPY_TARFILE=CloudComPy_Conda310_Linux64_"$(date +"%Y%m%d-%H%M")".tgz     # CloudComPy Binary tarfile (will be in ${CLOUDCOMPY_INSTDIR}
    if [ -d ${HOME}/anaconda3 ]; then
        export CONDA_ROOT=${HOME}/anaconda3                                                # root directory of conda installation
    else
        export CONDA_ROOT=${HOME}/miniconda3                                                # root directory of conda installation
    fi
    export CONDA_ENV=CloudComPy310                                                         # conda environment name
    export CONDA_PATH=${CONDA_ROOT}/envs/${CONDA_ENV}                                      # conda environment directory
    export CORK_REP=${HOME}/projets/CloudComPy/cork                                        # directory of cork (remove the plugin in cmake options if not needed)
    export FBXSDK_REP=${HOME}/projets/CloudComPy/fbxSdk                                    # directory of fbx sdk (remove the plugin in cmake options if not needed)
    export LIBIGL_REP=${HOME}/projets/CloudComPy/libigl                                    # directory of libigl (remove the plugin in cmake options if not needed)
    if [ -d ${HOME}/projets/CloudComPy/Occ-740p3_opt ]; then
        export OPENCASCADE_REP=${HOME}/projets/CloudComPy/Occ-740p3_opt                    # directory of OpenCascade (remove the plugin in cmake options if not needed)
    elif [ -d ${HOME}/projets/hydro95/prerequisites/install/Occ-740p3_opt ]; then
        export OPENCASCADE_REP=${HOME}/projets/hydro95/prerequisites/install/Occ-740p3_opt
    else
        export OPENCASCADE_REP=${HOME}/projets/hydro95/prerequisites/install/Occ-740p3EDFp1
    fi
    export PCLLIB_REP=${HOME}/projets/CloudComPy/pcl/install                               # patch on pcl lib (issue #100): libpcl_common.so
    export NBTHREADS="$(grep -c processor /proc/cpuinfo)"                                  # number of threads for parallel make
    
    . ${CONDA_ROOT}/etc/profile.d/conda.sh                                                 # required to have access to conda commands in a shell script
    
    error_exit()
    {
      echo "Error $1" 1>&2
      exit 1
    }
    
    # --- conda environment
    
    conda_buildenv()
    {
        echo "# --- build conda environment ---"
        conda update -y -n base -c defaults conda
        conda activate ${CONDA_ENV}
        ret=$?
        ret=1
        if [ $ret != "0" ]; then
            conda activate && \
            conda create -y --name ${CONDA_ENV} python=3.10 && \
            conda activate ${CONDA_ENV} || error_exit "conda environment ${CONDA_ENV} cannot be built"
        fi
        conda config --add channels conda-forge && \
        conda config --set channel_priority flexible && \
        conda install -y "boost=1.84" "cgal=5.6" cmake "draco=1.5" "ffmpeg=6.1" "gdal=3.8" jupyterlab laszip "matplotlib=3.9" "mpir=3.0" "mysql=8" notebook numpy "opencv=4.8" "openmp=8.0" "openssl=3.1" "pcl=1.14" "pdal=2.6" "psutil=6.0" pybind11 quaternion "qhull=2020.2" "qt=5.15.8" scipy sphinx_rtd_theme spyder tbb tbb-devel "xerces-c=3.2" || error_exit "conda environment ${CONDA_ENV} cannot be completed"
    }
    
    # --- CloudComPy build
    
    cloudcompy_setenv()
    {
        echo "# --- set CloudComPy build environment ---"
        conda activate ${CONDA_ENV} || error_exit "${CONDA_ENV} is not a conda environment"
        echo ${CLOUDCOMPY_BUILD}
        echo ${CLOUDCOMPY_INSTALL}
        rm -rf ${CLOUDCOMPY_BUILD}
        rm -rf ${CLOUDCOMPY_INSTALL}
        mkdir -p ${CLOUDCOMPY_BUILD} && cd ${CLOUDCOMPY_BUILD} || error_exit "access problem to ${CLOUDCOMPY_BUILD}"
    }
    
    cloudcompy_configure()
    {
        echo "# --- configure CloudComPy ---"
        cmake \
        -S"${CLOUDCOMPY_SRC}" \
        -B"${CLOUDCOMPY_BUILD}" \
        -G"Unix Makefiles" \
        -DBUILD_PY_TESTING:BOOL="1" \
        -DBUILD_REFERENCE_DOC:BOOL="1" \
        -DBUILD_TESTING:BOOL="1" \
        -DCCCORELIB_SHARED:BOOL="1" \
        -DCCCORELIB_USE_CGAL:BOOL="1" \
        -DCCCORELIB_USE_QT_CONCURRENT:BOOL="1" \
        -DCCCORELIB_USE_TBB:BOOL="0" \
        -DCMAKE_BUILD_TYPE:STRING="Release" \
        -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ \
        -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/cc \
        -DCMAKE_Fortran_COMPILER:FILEPATH=/usr/bin/gfortran \
        -DCMAKE_INSTALL_PREFIX:PATH="${CLOUDCOMPY_INSTALL}" \
        -DCORK_INCLUDE_DIR:PATH="${CORK_REP}/src" \
        -DCORK_RELEASE_LIBRARY_FILE:FILEPATH="${CORK_REP}/lib/libcork.a" \
        -DDRACO_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DDRACO_LIB_DIR:PATH="${CONDA_PATH}/lib" \
        -DDRACO_LIBRARIES:PATH="${CONDA_PATH}/lib/libdraco.a" \
        -DEIGEN_INCLUDE_DIR:PATH="${CONDA_PATH}/include/eigen3" \
        -DEIGEN_ROOT_DIR:PATH="${CONDA_PATH}/include/eigen3" \
        -DFBX_SDK_INCLUDE_DIR:PATH="${FBXSDK_REP}/include" \
        -DFBX_SDK_LIBRARY_FILE:FILEPATH="${FBXSDK_REP}/lib/gcc/x64/release/libfbxsdk.a" \
        -DFBX_XML2_LIBRARY_FILE:FILEPATH="" \
        -DGDAL_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DGDAL_LIBRARY:FILEPATH="${CONDA_PATH}/lib/libgdal.so" \
        -DGMP_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DGMP_LIBRARIES:FILEPATH="${CONDA_PATH}/lib/libgmp.so" \
        -DGMP_LIBRARIES_DIR:FILEPATH="${CONDA_PATH}" \
        -DLASLIB_INCLUDE_DIR:PATH="${HOME}/projets/CloudComPy/LAStools/LASlib/inc" \
        -DLASZIP_LASTOOLS_INCLUDE_DIR:PATH="${HOME}/projets/CloudComPy/LAStools/LASzip/src" \
        -DLASLIB_RELEASE_LIBRARY:FILEPATH="${HOME}/projets/CloudComPy/LAStoolsInstall/lib/LASlib/libLASlib.a" \
        -DLIBIGL_INCLUDE_DIR:PATH="${LIBIGL_REP}/libigl/include" \
        -DLIBIGL_RELEASE_LIBRARY_FILE:FILEPATH="${LIBIGL_REP}/install/lib/libigl.a" \
        -DMPFR_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DMPFR_LIBRARIES:FILEPATH="${CONDA_PATH}/lib/libmpfr.so" \
        -DMPFR_LIBRARIES_DIR:FILEPATH="${CONDA_PATH}" \
        -DMPIR_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DMPIR_RELEASE_LIBRARY_FILE:FILEPATH="${CONDA_PATH}/lib/libgmp.so" \
        -DOPENCASCADE_DLL_DIR:PATH="${OPENCASCADE_REP}/lib" \
        -DOPENCASCADE_INC_DIR:PATH="${OPENCASCADE_REP}/include/opencascade" \
        -DOPENCASCADE_LIB_DIR:PATH="${OPENCASCADE_REP}/lib" \
        -DOPTION_USE_GDAL:BOOL="1" \
        -DOpenMP_omp_LIBRARY:FILEPATH="${CONDA_PATH}/lib/libomp.so" \
        -DPLUGIN_EXAMPLE_GL:BOOL="1" \
        -DPLUGIN_EXAMPLE_IO:BOOL="1" \
        -DPLUGIN_EXAMPLE_STANDARD:BOOL="1" \
        -DPLUGIN_GL_QEDL:BOOL="1" \
        -DPLUGIN_GL_QSSAO:BOOL="1" \
        -DPLUGIN_IO_QADDITIONAL:BOOL="1" \
        -DPLUGIN_IO_QCORE:BOOL="1" \
        -DPLUGIN_IO_QCSV_MATRIX:BOOL="1" \
        -DPLUGIN_IO_QDRACO:BOOL="1" \
        -DPLUGIN_IO_QE57:BOOL="1" \
        -DPLUGIN_IO_QFBX:BOOL="1" \
        -DPLUGIN_IO_QLAS:BOOL="1" \
        -DPLUGIN_IO_QLAS_FWF:BOOL="0" \
        -DPLUGIN_IO_QPDAL:BOOL="0" \
        -DPLUGIN_IO_QPHOTOSCAN:BOOL="1" \
        -DPLUGIN_IO_QRDB:BOOL="1" \
        -DPLUGIN_IO_QRDB_FETCH_DEPENDENCY:BOOL="1" \
        -DPLUGIN_IO_QRDB_INSTALL_DEPENDENCY:BOOL="1" \
        -DPLUGIN_IO_QSTEP:BOOL="1" \
        -DPLUGIN_PYTHON="OFF" \
        -DPLUGIN_STANDARD_3DMASC:BOOL="1" \
        -DPLUGIN_STANDARD_MASONRY_QAUTO_SEG:BOOL="1" \
        -DPLUGIN_STANDARD_MASONRY_QMANUAL_SEG:BOOL="1" \
        -DPLUGIN_STANDARD_QANIMATION:BOOL="1" \
        -DPLUGIN_STANDARD_QBROOM:BOOL="1" \
        -DPLUGIN_STANDARD_QCANUPO:BOOL="1" \
        -DPLUGIN_STANDARD_QCLOUDLAYERS:BOOL="1" \
        -DPLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTER:BOOL="1" \
        -DPLUGIN_STANDARD_QCOMPASS:BOOL="1" \
        -DPLUGIN_STANDARD_QCORK:BOOL="1" \
        -DPLUGIN_STANDARD_QCSF:BOOL="1" \
        -DPLUGIN_STANDARD_QFACETS:BOOL="1" \
        -DPLUGIN_STANDARD_QHOUGH_NORMALS:BOOL="1" \
        -DPLUGIN_STANDARD_QHPR:BOOL="1" \
        -DPLUGIN_STANDARD_QJSONRPC:BOOL="1" \
        -DPLUGIN_STANDARD_QM3C2:BOOL="1" \
        -DPLUGIN_STANDARD_QMESH_BOOLEAN:BOOL="1" \
        -DPLUGIN_STANDARD_QMPLANE:BOOL="1" \
        -DPLUGIN_STANDARD_QPCL:BOOL="1" \
        -DPLUGIN_STANDARD_QPCV:BOOL="1" \
        -DPLUGIN_STANDARD_QPOISSON_RECON:BOOL="1" \
        -DPLUGIN_STANDARD_QRANSAC_SD:BOOL="1" \
        -DPLUGIN_STANDARD_QSRA:BOOL="1" \
        -DPLUGIN_STANDARD_QTREEISO:BOOL="1" \
        -DPYTHONAPI_TEST_DIRECTORY:STRING="CloudComPy/Data" \
        -DPYTHONAPI_EXTDATA_DIRECTORY:STRING="CloudComPy/ExternalData" \
        -DPYTHONAPI_TRACES:BOOL="1" \
        -DPYTHON_PREFERED_VERSION:STRING="3.10" \
        -DQANIMATION_WITH_FFMPEG_SUPPORT:BOOL="1" \
        -DTBB_DIR:PATH="${CONDA_PATH}/lib/cmake/TBB" \
        -DUSE_CONDA_PACKAGES:BOOL="1" \
        -DUSE_EXTERNAL_QHULL_FOR_QHPR:BOOL="0" \
        -DXercesC_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DXercesC_LIBRARY_DEBUG:FILEPATH="XercesC_LIBRARY_DEBUG-NOTFOUND" \
        -DXercesC_LIBRARY_RELEASE:FILEPATH="${CONDA_PATH}/lib/libxerces-c.so" \
        -DZLIB_INCLUDE_DIR:PATH="${CONDA_PATH}/include" \
        -DZLIB_LIBRARY_RELEASE:FILEPATH="${CONDA_PATH}/lib/libz.so"
    }
    
    cloudcompy_build()
    {
        echo "# --- build and install CloudComPy ---"
        cd ${CLOUDCOMPY_BUILD} && make -j${NBTHREADS} && make install
        cd ${OPENCASCADE_REP}/lib && \
        cp -f libTKSTEP.so.7 libTKSTEPBase.so.7 libTKSTEPAttr.so.7 libTKSTEP209.so.7 libTKShHealing.so.7 libTKTopAlgo.so.7 libTKBRep.so.7 \
        libTKGeomBase.so.7 libTKG3d.so.7 libTKG2d.so.7 libTKMath.so.7 libTKernel.so.7 libTKXSBase.so.7 libTKGeomAlgo.so.7 libTKMesh.so.7 \
        ${CLOUDCOMPY_INSTALL}/lib/cloudcompare/plugins
        cd ${PCLLIB_REP}/lib && \
        cp -f libpcl_common.so.1.12.1 ${CLOUDCOMPY_INSTALL}/lib/cloudcompare
        cd ${CLOUDCOMPY_INSTALL}/lib/cloudcompare && \
        ln -s libpcl_common.so.1.12.1 libpcl_common.so.1.12 && ln -s libpcl_common.so.1.12.1 libpcl_common.so
    }
    
    cloudcompy_tarfile()
    {
        echo "# --- generate CloudComPy binaries tarfile ---"
        cd ${CLOUDCOMPY_INSTNAME} && find . -type d -name __pycache__ -exec rm -rf {} \;
        cd ${CLOUDCOMPY_INSTDIR} && rm -f ${CLOUDCOMPY_TARFILE} &&\
        tar cvzf ${CLOUDCOMPY_TARFILE} ${CLOUDCOMPY_INSTNAME}
    }
    
    cloudcompy_test()
    {
        echo "# --- test CloudComPy ---"
        cd ${CLOUDCOMPY_INSTALL} && \
        . bin/condaCloud.sh activate ${CLOUDCOMPY_INSTNAME} && \
        rm -rf ~/CloudComPy/Data &&
        cd doc/PythonAPI_test && ctest
    }
    
    conda_buildenv && \
    cloudcompy_setenv && \
    cloudcompy_configure && \
    cloudcompy_build && \
    cloudcompy_tarfile && \
    cloudcompy_test
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions