Native Install (Ubuntu 20.04)

I need to help Native Install (Ubuntu 20.04), i have this bug when run ‘bash configure.sh install’:

– Using src=‘https://gitlab.com/libeigen/eigen/-/archive/3.3.2/eigen-3.3.2.tar.gz
– verifying file…
file=‘/home/trand/Desktop/build_map/ODM-3.1.0/SuperBuild/build/mvstexturing/elibs/ext_eigen/src/eigen-3.3.2.tar.gz’
– MD5 hash of
/home/trand/Desktop/build_map/ODM-3.1.0/SuperBuild/build/mvstexturing/elibs/ext_eigen/src/eigen-3.3.2.tar.gz
does not match expected value
expected: ‘02edfeec591ae09848223d622700a10b’
actual: ‘7b8ab470dbf9d22bf4adef60f9f8f4f2’
– Hash mismatch, removing…
CMake Error at /home/trand/Desktop/build_map/ODM-3.1.0/SuperBuild/build/mvstexturing/elibs/ext_eigen/src/ext_eigen-stamp/download-ext_eigen.cmake:159 (message):
Each download failed!

1 Like

If the hash is failing you might be having connectivity or storage issues.

1 Like

Hi Saijin,
Thank for your response,
I change MD5 hash results in file /home/trand/Desktop/build_map/ODM-3.1.0/SuperBuild/build/mvstexturing/elibs/ext_eigen/src/ext_eigen-stamp/download-ext_eigen.cmake to 7b8ab470dbf9d22bf4adef60f9f8f4f2 , and it can build done, but it maybe have issue later
Cheers,
TraDinh

1 Like

Hi Saijin,
i have a bug when running opendronemap is built from source, this bug like that:
Traceback (most recent call last):
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/init.py”, line 21, in swig_import_helper
return importlib.import_module(mname)
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1014, in _gcd_import
File “”, line 991, in _find_and_load
File “”, line 975, in _find_and_load_unlocked
File “”, line 657, in _load_unlocked
File “”, line 556, in module_from_spec
File “”, line 1166, in create_module
File “”, line 219, in _call_with_frames_removed
ImportError: /home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/…/…/…/libgdal.so.29: undefined symbol: opj_encoder_set_extra_options

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “run.py”, line 15, in
from opendm.utils import get_processing_results_paths, rm_r
File “/home/trand/Desktop/build_map/ODM-3.1.0/opendm/utils.py”, line 8, in
from osgeo import gdal
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/init.py”, line 37, in
_gdal = swig_import_helper()
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/init.py”, line 34, in swig_import_helper
return importlib.import_module(‘_gdal’)
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named ‘_gdal’

can you help me?
Thank you,
TraDinh

1 Like

Do you have GDAL installed? Did the script fetch everything?

We maintain the Docker release to avoid issues with on-machine compilation.

Is there a reason you can’t use the Docker release?

1 Like

Thanks for your response,
I try to understand algorithm in opendronemap code. i need native install to debug. this bug have when i run run.py with my data.
I can import gdal in my environment, but when try run.py, it can not import gdal and raise this bug.
This is my test:

(opendronemap) [email protected]:~$ python
Python 3.8.15 | packaged by conda-forge | (default, Nov 22 2022, 08:46:39)
[GCC 10.4.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

import osgeo
from osgeo import gdal
exit()

And this bug :

(opendronemap) [email protected]:~/Desktop/build_map/ODM-3.1.0$ python run.py /home/trand/Desktop/drone_project/data/60mALT_0and90deg/data
Traceback (most recent call last):
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/init.py”, line 21, in swig_import_helper
return importlib.import_module(mname)
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1014, in _gcd_import
File “”, line 991, in _find_and_load
File “”, line 975, in _find_and_load_unlocked
File “”, line 657, in _load_unlocked
File “”, line 556, in module_from_spec
File “”, line 1166, in create_module
File “”, line 219, in _call_with_frames_removed
ImportError: /home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/…/…/…/libgdal.so.29: undefined symbol: opj_encoder_set_extra_options

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “run.py”, line 15, in
from opendm.utils import get_processing_results_paths, rm_r
File “/home/trand/Desktop/build_map/ODM-3.1.0/opendm/utils.py”, line 6, in
from osgeo import gdal
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/init.py”, line 37, in
_gdal = swig_import_helper()
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/site-packages/osgeo/init.py”, line 34, in swig_import_helper
return importlib.import_module(‘_gdal’)
File “/home/trand/anaconda3/envs/opendronemap/lib/python3.8/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named ‘_gdal’

cheers,
TraDinh

1 Like

I am unable to assist you with debugging this further, unfortunately. I’m not quite sure what is going on, though I think using conda instead of regular Python might cause issues. Not sure we’ve ever tested against that.

Hopefully someone else will come along who knows more about the native compile pitfalls.

1 Like

Thanks for your support,
Can you give me any tip for starting with opendronemap?

1 Like

I’d say get up and running with the Docker version, and learn how to debug/edit the Docker build, which is going to be much easier than getting a fully native install built and running. Should hopefully save you a ton of time and effort :slight_smile:

1 Like

I am also running Linux and using the Docker version is way easier and the performance of the software is still amazing.
Even as Linux system adminitrator I am using the Docker version. There are many dependencies that would otherwise bog down my system. Especially Python and GDAL can be “sensitive” environments. The most practical way to run WebODM is inside Docker with known versions of its dependencies.

As @Saijin_Naib mentions, you still have the possibility to log into the Docker container and run any command you need.

Out of curiosity: how did you get down this road? Did you already try out WebODM in Docker and ran into problems?

2 Likes

Hi Shiva,
I already build map and run opendronemap using docker. I try to native install for debugging in pycharm.
My bug disapear when i add “from osgeo import gdal” in run.py . This bug in opendm/utils.py when i try to import osgeo.gdal .
I think python environment path change in somewhere in opendronemap code? but not sure :slight_smile:
cheers,
TraDinh

2 Likes

Agreed, I also run in docker, and am seeing the application to be fairly stable. I’ve had to restart the WebODM container once in a 20-day run, so it’s not bad.

3 Likes

The question was more about: why or what do you want to debug? What is the bug you are after?

I also read the other posts from you here on the forum. My curiosity is more about, what bug do you want to debug?

That there are many possible caveats when trying to run WebODM natively on Linux is not a question, it is to be expected. And be prepared that you may face many more such problems :nerd_face:

It does not sound like a bug. A bug is when something is wrong with the actual software. What you describe is a problem with the dependencies of the software, not with the software itself.

I hope that I am finding a way to communicate with you :cowboy_hat_face:
Maybe I am not understanding you properly, but what went wrong in WebODM running in Docker that made you wish to debug?

Giving you support to install WebODM natively is a bit out of scope here. Such an installation would almost need a book on its own to describe. That is why WebODm is packed in a Docker container.
But maybe you can let us know why you wish to debug and you could possibly abandon the idea to install WebODM natively?

2 Likes

Hi Shiva,
I just try to understand algorithm inside ODM, don’t have any bug in WebODM.
cheers,
TraDinh

2 Likes

Okay, now it’s clear :partying_face:

But maybe you can do the de-bugging inside the Docker container …

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.