Linux Mint Installation/Starting

Hi I’m trying to get WebODM running on Linux Mint but can’t get it to work and would appreciate some help. I’ve tried a couple of times with no joy so started over by deleting the install directory and following the install instructions at Installation and Getting Started — OpenDroneMap 3.5.4 documentation

Just to check docker and python:

docker compose --version
Docker version 26.1.3, build 26.1.3-0ubuntu1~24.04.1

python3 --version
Python 3.12.3

Installed from git with no issues:

git clone GitHub - OpenDroneMap/WebODM: User-friendly, commercial-grade software for processing aerial imagery. ✈️
Cloning into ‘WebODM’…
remote: Enumerating objects: 20849, done.
remote: Counting objects: 100% (615/615), done.
remote: Compressing objects: 100% (202/202), done.
remote: Total 20849 (delta 486), reused 428 (delta 411), pack-reused 20234 (from 4)
Receiving objects: 100% (20849/20849), 109.07 MiB | 6.99 MiB/s, done.
Resolving deltas: 100% (13803/13803), done.

According to Mint Software Manager, both celery 5.3.6-1 any Python 3 celery 5.3.6-1 are present (perhaps from my previous install attempts, I’ve gone round in so many circles I can’t recall which if either I’ve installed!).

Trying to start webODM directly with start.sh I get a message to install or configure Python 3. As above, this is installed (but is not the Mint default version) so gather I need to execute webODM in a virtual environment. So from within webODM directory I run:

python3 -m venv venv

which creates and populated subdir /venv

I activate the virtual environment with:

source myvenv/bin/activate

which places (venv) at the start of the prompt so I assume that’s ok?

I run start.sh and get this output:

Traceback (most recent call last):
File “/home/paul/WebODM/manage.py”, line 8, in
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named ‘django’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/paul/WebODM/manage.py”, line 14, in
import django
ModuleNotFoundError: No module named ‘django’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/paul/WebODM/manage.py”, line 16, in
raise ImportError(
ImportError: Couldn’t import Django. Are you sure it’s installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
Traceback (most recent call last):
File “/home/paul/WebODM/manage.py”, line 8, in
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named ‘django’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/paul/WebODM/manage.py”, line 14, in
import django
ModuleNotFoundError: No module named ‘django’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/paul/WebODM/manage.py”, line 16, in
raise ImportError(
ImportError: Couldn’t import Django. Are you sure it’s installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
Checking for celery… OK
WO_BROKER environment variable is not set. Defaulting to redis://localhost
Scheduler is not running.
Generating nginx configurations from templates…

  • nginx/nginx.conf
  • nginx/nginx-ssl.conf
    ./start.sh: line 149: nginx: command not found
    ./start.sh: line 150: gunicorn: command not found
    Traceback (most recent call last):
    File “/usr/bin/celery”, line 22, in
    from pkg_resources import load_entry_point
    ModuleNotFoundError: No module named ‘pkg_resources’

In Software Manager I see that ‘python3-django’ version 3:4.2.11-1ubuntu1.6 is installed but there are dozens of other python3-django packages that are not installed. Maybe some of these are required or maybe this has to be installed in the virtual environment as well?

I’ve run:

echo $PYTHONPATH

and find that is empty (checked with venv activated and not activated) but I’m not sure what if anything it should contain. Maybe this is the problem?

Not having experience with Python set-ups, virtual environments or the django or celery packages I’m not sure where to go next so any help appreciated!

1 Like

The point of docker and docker compose are to avoid having to handle all the dependencies. Issue the following via the readme from inside the cloned WebODM directory:

./webodm.sh start

Direct installation isn’t supported.

From there, you should be on the road!

1 Like

Thanks for the reply. That gives an error, any idea why?

ERROR: for 22c99967ea48_worker ‘ContainerConfig’

ERROR: for worker ‘ContainerConfig’
Traceback (most recent call last):
File “/usr/bin/docker-compose”, line 33, in
sys.exit(load_entry_point(‘docker-compose==1.29.2’, ‘console_scripts’, ‘docker-compose’)())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 81, in main
command_func()
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 203, in perform_command
handler(command, command_options)
File “/usr/lib/python3/dist-packages/compose/metrics/decorator.py”, line 18, in wrapper
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 1186, in up
to_attach = up(False)
^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/cli/main.py”, line 1166, in up
return self.project.up(
^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/project.py”, line 697, in up
results, errors = parallel.parallel_execute(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 108, in parallel_execute
raise error_to_reraise
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 206, in producer
result = func(obj)
^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/project.py”, line 679, in do
return service.execute_convergence_plan(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 579, in execute_convergence_plan
return self._execute_convergence_recreate(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 499, in _execute_convergence_recreate
containers, errors = parallel_execute(
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 108, in parallel_execute
raise error_to_reraise
File “/usr/lib/python3/dist-packages/compose/parallel.py”, line 206, in producer
result = func(obj)
^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 494, in recreate
return self.recreate_container(
^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 612, in recreate_container
new_container = self.create_container(
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 330, in create_container
container_options = self._get_container_create_options(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 921, in _get_container_create_options
container_options, override_options = self._build_container_volume_options(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 960, in _build_container_volume_options
binds, affinity = merge_volume_bindings(
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 1548, in merge_volume_bindings
old_volumes, old_mounts = get_container_data_volumes(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/compose/service.py”, line 1579, in get_container_data_volumes
container.image_config[‘ContainerConfig’].get(‘Volumes’) or {}
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: ‘ContainerConfig’

1 Like

This gives you docker version. How did you install docker compose?

1 Like

Probably via Software Manager but I see there’s also docker-compose-v2 in there.

Just a bump.

Maye I should uninstall everything and start over? If so, can anyone tell me what version of docker is required (or whether ‘docker 2’ is the mint repo is needed?) and what steps if any are needed to configure it for WebODM?

Thank you.

Check your docker compose installation. When you run docker compose --version you shouldn’t get your docker version, you should get your docker compose version. You may have docker-compose, but you almost certainly don’t have docker compose. (Which is silly, confusing, and a bit dumb, but we cannot control that ecosystem, so I’ll stop complaining)

Check this:

And particularly this:

Thanks for the reply. I’ve had a scan of that first page regarding installing docker desktop and I’m afraid it’s too jargon heavy, I don’t understand 50% of the general system requirements or have the time to dedicate to such a complex installation so I’m giving up with WebODM.

I don’t understand why it’s proved so difficult to install and run on Linux Mint when I installed it without issue on MX Linux last year and it ran without any problems.

Please look at the second link. The first is the general overview of the 3 ways to get docker compose. The second is what I expect you need to do.

I’ve tried yet again.

I added the repo as per Plugin | Docker Docs then installed docker-compose-plugin and all seemed to go as expected.

If I execute ‘docker compose version’ I get:

Docker Compose version v2.34.0

If I execute ‘sudo docker run hello-world’ I get:

Hello from Docker!
This message shows that your installation appears to be working correctly.
etc...

I change into ~/WebODM and execute ‘./webodm.sh start’ I get the following error again:

...
Make sure to issue a ./webodm.sh down if you decide to change the environment.

docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml up --scale node-odm=1
Recreating 3ce852db1892_broker ... 
Recreating 9cfd512aa5aa_db     ... 
webodm_node-odm_1 is up-to-date

ERROR: for 9cfd512aa5aa_db  'ContainerConfig'

ERROR: for 3ce852db1892_broker  'ContainerConfig'

ERROR: for db  'ContainerConfig'

ERROR: for broker  'ContainerConfig'
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 33, in <module>
    sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
...

Following a web search as a last effort I tried various docker/compose commands to try to fix this error, none of which seemed to have any effect (or were even recognised as valid commands eg remove-orphans, rm, down etc). After a reboot later in the day I tried again and WebODM inexplicably started up properly and worked fine! Not knowing how or why this happened doesn’t fill me with confidence for possible installs when upgrading the OS in future.

Just for feedback, not having any familiarity with docker, this has been the most difficult to understand installation I’ve ever done, maybe things are easier on Windows? Also, I get a warning that I’m running WebODM as superuser when I’m not issuing a sudo or acting as su and I’ve had to add a repo whose trustworthiness is unknown to me. I guess these are things I have to put up with.

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