I recently updated WebODM and can’t process any jobs. I keep getting this error:
Process exited with code 1
Task Output
Traceback (most recent call last):
File “/code/run.py”, line 12, in
from stages.odm_app import ODMApp
File “/code/stages/odm_app.py”, line 13, in
from odm_meshing import ODMeshingStage
File “/code/stages/odm_meshing.py”, line 7, in
from opendm import mesh
File “/code/opendm/mesh.py”, line 3, in
from opendm.dem import commands
File “/code/opendm/dem/commands.py”, line 22, in
from .ground_rectification.rectify import run_rectification
File “/code/opendm/dem/ground_rectification/rectify.py”, line 4, in
from sklearn.neighbors import BallTree
File “/usr/lib/python2.7/dist-packages/sklearn/neighbors/init.py”, line 9, in
from .graph import kneighbors_graph, radius_neighbors_graph
File “/usr/lib/python2.7/dist-packages/sklearn/neighbors/graph.py”, line 9, in
from .base import KNeighborsMixin, RadiusNeighborsMixin
File “/usr/lib/python2.7/dist-packages/sklearn/neighbors/base.py”, line 18, in
from …metrics import pairwise_distances
File “/usr/lib/python2.7/dist-packages/sklearn/metrics/init.py”, line 33, in
from . import cluster
File “/usr/lib/python2.7/dist-packages/sklearn/metrics/cluster/init.py”, line 19, in
from .unsupervised import silhouette_samples
File “/usr/lib/python2.7/dist-packages/sklearn/metrics/cluster/unsupervised.py”, line 10, in
from …pairwise import pairwise_distances
File “/usr/lib/python2.7/dist-packages/sklearn/metrics/pairwise.py”, line 27, in
from …externals.joblib import parallel
ImportError: cannot import name parallel
pip install -U joblib
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: joblib in ./.local/lib/python3.7/site-packages (0.16.0)
I’m out of ideas; I should mention that the native installer has been deprecated almost a year ago and that the preferred way to install WebODM on a server is now to follow the procedure at https://docs.opendronemap.org/installation.html#linux using docker.
If you still want to try to run things natively, you might have to run the script manually command by command and take note of any error message that might appear while executing them.
I tried something that allowed me to process the jobs and obtain the orthophotos that I needed. When I capture the images from my DJI Mavic, the images are stored in folders (999 per folder). One set of images was about 1400 images so the images were broken into 2 folders which results in duplicate file names. While I’ve not had issues with this in the past, I thought I’d try renaming all images so they were unique and placed all images in a single folder. For whatever reason, the job was successfully processed. I don’t know why this would have made a difference as I’ve processed several jobs like this before without problems but I thought I’d share in case it helps.