Import error: no module named ecto


#1

Hi,

I’m new to ODM and have been trying to install it and get it up and running.

I successfully downloaded ODM (v0.3.1) and installed (bash configure.sh install) and updated my environment variables (~/.bashrc), I also updated my settings.yaml file to a project folder, then downloaded one of your example/test datasets (aukerman).

However when I go to run it to process the data I get a message saying “import error: no module named ecto”.
This is true whether I run it with python run.py or ./run.sh.

I’ve tried uninstalling and installing again, and also tried reinstalling. No success.
I also downloaded PCL and moved into the SuperBuild/download directory and then undertaken another install. Same results. I’m unable to get passed the import ecto line.

Can anybody please help me overcome this problem?
I can’t see any relevant solution that I’ve yet to try.
Seems to be a fairly common one.

I should point out:

  1. I’m new to linux so I take a “cook book” approach, meaning that if there isn’t an instruction to do something I’m not going to know that I need to do it
  2. its a brand new computer, the only other thing installed is the SNAP toolbox (Sentinel satellite data processing). So I hadn’t previously installed Python yet (do I need to do this before installing ODM)?
  3. My computer is running Ubuntu 18.04. is this where my problem lies? How might I overcome it to get ODM to work?

Thanks :slight_smile:


#2

Hey @samfleming6 :hand: welcome!

Have you restarted the shell after setting the environment variables? https://github.com/OpenDroneMap/OpenDroneMap#environment-variables


#3

Hi!

Yes, I even went as far as restarted my computer, and double checked the .bashrc file to make sure the amendments remained.

Even so, my understanding was that using the ./run.sh should use the correct env variables for that run (even if the bashrc is incorrect)? Happy to be wrong on that though.


#4

Correct, run.sh should take care of that.

If you cd into SuperBuild/build and issue:

make ecto

Do you get an error message?


#5

Yes.

This is the feed I get:

[ 50%] Built target catkin
[ 56%] Performing configure step for ‘ecto’
– Using CATKIN_DEVEL_PREFIX: /home/username/Documents/OpenDroneMap_v0_3_1/SuperBuild/build/ecto/devel
– Using CMAKE_PREFIX_PATH:
– Using PYTHON_EXECUTABLE: /usr/bin/python
– Using Debian Python package layout
– Using empy: /usr/bin/empy
– Using CATKIN_ENABLE_TESTING: OFF
– catkin 0.6.16
– Boost version: 1.65.0
CMake Error at /usr/share/cmake-3.10/Modules/FindBoost.cmake:1947 (message):
Unable to find the requested Boost libraries.

Boost version: 1.65.0

Boost include path: /usr/local/include

Could not find the following Boost libraries:

      boost_python

Some (but not all) of the required Boost libraries were found. You may
need to install these additional Boost libraries. Alternatively, set
BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT
to the location of Boost.
Call Stack (most recent call first):
cmake/boost.cmake:28 (find_package)
CMakeLists.txt:67 (include)

– Boost version 1.65.0
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
– ecto commit:
– ecto tag (long):
– ecto tag (short):
– ecto last_mod:
– Configuring incomplete, errors occurred!
See also “/home/username/Documents/OpenDroneMap_v0_3_1/SuperBuild/build/ecto/CMakeFiles/CMakeOutput.log”.
See also “/home/username/Documents/OpenDroneMap_v0_3_1/SuperBuild/build/ecto/CMakeFiles/CMakeError.log”.
CMakeFiles/ecto.dir/build.make:109: recipe for target ‘ecto/stamp/ecto-configure’ failed
make[3]: *** [ecto/stamp/ecto-configure] Error 1
CMakeFiles/Makefile2:252: recipe for target ‘CMakeFiles/ecto.dir/all’ failed
make[2]: *** [CMakeFiles/ecto.dir/all] Error 2
CMakeFiles/Makefile2:264: recipe for target ‘CMakeFiles/ecto.dir/rule’ failed
make[1]: *** [CMakeFiles/ecto.dir/rule] Error 2
Makefile:183: recipe for target ‘ecto’ failed
make: *** [ecto] Error 2


#6

Try installing boost python: apt install libboost-python


#7

I get a message saying “Unable to locate package libboost-python” (had to do “sudo apt install libboost-python”). Advice?

I get that this is probably v simple stuff so I appreciate your patience and help :slight_smile:


#8

Ah, sorry, use apt install libboost-python-dev


#9

Cool. that worked.

still unable to make ecto, and getting the same error log as above.
I tried sudo make ecto and got a slightly different error message that seems to boil down to (ImportError: No module named catkin.environment_cache)

(also still getting the import error when i try to use run.sh).


#10

Mm, I’m not sure. Are you running Ubuntu 16.04? Installation might have problems on different Linux systems.


#11

Exactly same situation, but running Ubuntu 16.04.

export PYTHONPATH=$PYTHONPATH:/your/path/OpenDroneMap/SuperBuild/install/lib/python2.7/dist-packages
export PYTHONPATH=$PYTHONPATH:/your/path/OpenDroneMap/SuperBuild/src/opensfm
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/path/OpenDroneMap/SuperBuild/install/lib

#12

I’m curious, if you run:

bash configure.sh reinstall 1

(pass 1 at the end of the command)

Are you able to make it work?


#13

I’m on 18.04 so perhaps thats causing issues with installing packages?

reinstalling (with the 1) doesnt make a difference in my case


#14

Yeah 18.04 isn’t officially supported as of yet. Would recommend using docker if you’re on 18.04.