I have just downloaded latest webodm version from here (https://github.com/OpenDroneMap/WebODM/releases/tag/v1.9.11) then I did the following:
cd WebODM
./webodm.sh start --dev
Below is the stacktrace. Iβm running this in an Ubuntu 18 machine with 16gb Ram:
Checking for docker... OK
Checking for git... OK
Checking for docker-compose... OK
Starting WebODM in development mode...
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.nodemicmac.yml down --remove-orphans
Removing network webodm_default
Using the following environment:
================================
Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1
================================
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 -f docker-compose.dev.yml start || docker-compose -f docker-compose.yml -f docker-compose.nodeodm.yml -f docker-compose.dev.yml up --scale node-odm=1
Starting db ... done
Starting node-odm ... done
Starting broker ... done
Starting worker ... done
Starting webapp ... done
ERROR: No containers to start
Creating network "webodm_default" with the default driver
Pulling node-odm (opendronemap/nodeodm:latest)...
latest: Pulling from opendronemap/nodeodm
318226705d6b: Pull complete
0669e2b05c39: Pull complete
d0ef2780079e: Pull complete
ad073696f537: Pull complete
551be031d9d1: Pull complete
5d85a74cb89f: Pull complete
4a2ed2d6fc19: Pull complete
1c4c6e589aa1: Pull complete
37bd4ebf0828: Pull complete
05a5cdaf1e5c: Pull complete
d84c4f75d6cf: Pull complete
Digest: sha256:ae04d4eb880a0d1de069a0e76e17485ef93da79d633b3c19a3884f55fecd787c
Status: Downloaded newer image for opendronemap/nodeodm:latest
Pulling broker (redis:latest)...
latest: Pulling from library/redis
5eb5b503b376: Pull complete
6530a7ea3479: Pull complete
91f5202c6d9b: Pull complete
9f1ac212e389: Pull complete
82c311187b72: Pull complete
da84aa65ce64: Pull complete
Digest: sha256:0d9c9aed1eb385336db0bc9b976b6b49774aee3d2b9c2788a0d0d9e239986cb3
Status: Downloaded newer image for redis:latest
Pulling worker (opendronemap/webodm_webapp:latest)...
latest: Pulling from opendronemap/webodm_webapp
6f172cdbcbef: Pull complete
1d090c4e22af: Pull complete
d70142b78f05: Pull complete
Creating broker ... done
Creating worker ... done
Creating webapp ... done
Creating webodm_node-odm_1 ...
Creating db ...
Creating worker ...
Creating webapp ...
Attaching to webodm_node-odm_1, db, broker, worker, webapp
node-odm_1 | info: Authentication using NoTokenRequired
node-odm_1 | info: Listening on 0.0.0.0:6367 UDP for progress updates
node-odm_1 | info: No tasks dump found
db | ********************************************************************************
db | WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow
db | anyone with access to the Postgres port to access your database without
db | a password, even if POSTGRES_PASSWORD is set. See PostgreSQL
db | documentation about "trust":
db | https://www.postgresql.org/docs/current/auth-trust.html
db | In Docker's default configuration, this is effectively any other
db | container on the same system.
node-odm_1 | info: Checking for orphaned directories to be removed...
db |
db | It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace
broker | 1:C 09 Feb 2022 08:31:43.601 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
db | it with "-e POSTGRES_PASSWORD=password" instead to set a password in
broker | 1:C 09 Feb 2022 08:31:43.601 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
node-odm_1 | info: Server has started on port 3000
db | "docker run".
broker | 1:C 09 Feb 2022 08:31:43.601 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
db | ********************************************************************************
broker | 1:M 09 Feb 2022 08:31:43.601 * monotonic clock: POSIX clock_gettime
db | The files belonging to this database system will be owned by user "postgres".
worker | psql: error: could not connect to server: Connection refused
broker | 1:M 09 Feb 2022 08:31:43.602 * Running mode=standalone, port=6379.
worker | Is the server running on host "db" (172.18.0.2) and accepting
db | This user must also own the server process.
worker | TCP/IP connections on port 5432?
db |
broker | 1:M 09 Feb 2022 08:31:43.602 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
webapp | psql: error: could not connect to server: Connection refused
db | The database cluster will be initialized with locale "en_US.utf8".
worker | Postgres is unavailable - sleeping
broker | 1:M 09 Feb 2022 08:31:43.602 # Server initialized
webapp | Is the server running on host "db" (172.18.0.2) and accepting
db | The default database encoding has accordingly been set to "UTF8".
broker | 1:M 09 Feb 2022 08:31:43.602 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
db | The default text search configuration will be set to "english".
webapp | TCP/IP connections on port 5432?
db |
worker | psql: error: could not connect to server: Connection refused
broker | 1:M 09 Feb 2022 08:31:43.602 * Ready to accept connections
webapp | Postgres is unavailable - sleeping
db | Data page checksums are disabled.
worker | Is the server running on host "db" (172.18.0.2) and accepting
db |
db | fixing permissions on existing directory /var/lib/postgresql/data ... ok
worker | TCP/IP connections on port 5432?
db | creating subdirectories ... ok
worker | Postgres is unavailable - sleeping
db | selecting default max_connections ... 100
worker | psql: error: could not connect to server: Connection refused
worker | Is the server running on host "db" (172.18.0.2) and accepting
db | selecting default shared_buffers ... 128MB
worker | TCP/IP connections on port 5432?
db | selecting default timezone ... Etc/UTC
db | selecting dynamic shared memory implementation ... posix
worker | Postgres is unavailable - sleeping
db | creating configuration files ... ok
worker | psql: error: could not connect to server: Connection refused
db | creating template1 database in /var/lib/postgresql/data/base/1 ... ok
worker | Is the server running on host "db" (172.18.0.2) and accepting
worker | TCP/IP connections on port 5432?
db | initializing pg_authid ... ok
worker | Postgres is unavailable - sleeping
db | setting password ... ok
db | initializing dependencies ... ok
db | creating system views ... ok
db | loading system objects' descriptions ... ok
db | creating collations ... ok
db | creating conversions ... ok
db | creating dictionaries ... ok
db | setting privileges on built-in objects ... ok
db | creating information schema ... ok
db | loading PL/pgSQL server-side language ... ok
db | vacuuming database template1 ... ok
db | copying template1 to template0 ... ok
db | copying template1 to postgres ... ok
db | syncing data to disk ...
db | WARNING: enabling "trust" authentication for local connections
db | You can change this by editing pg_hba.conf or using the option -A, or
db | --auth-local and --auth-host, the next time you run initdb.
db | ok
db |
db | Success. You can now start the database server using:
db |
db | pg_ctl -D /var/lib/postgresql/data -l logfile start
db |
db | waiting for server to start....LOG: database system was shut down at 2022-02-09 08:31:46 UTC
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: database system is ready to accept connections
db | LOG: autovacuum launcher started
db | done
db | server started
db |
db | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init-db.sql
db | ALTER ROLE
db | CREATE DATABASE
db | ALTER DATABASE
db | ALTER DATABASE
db |
db |
db | waiting for server to shut down....LOG: received fast shutdown request
db | LOG: aborting any active transactions
db | LOG: autovacuum launcher shutting down
db | LOG: shutting down
db | LOG: database system is shut down
worker | psql: error: could not connect to server: Connection refused
worker | Is the server running on host "db" (172.18.0.2) and accepting
worker | TCP/IP connections on port 5432?
worker | Postgres is unavailable - sleeping
db | done
db | server stopped
db |
db | PostgreSQL init process complete; ready for start up.
db |
db | LOG: database system was shut down at 2022-02-09 08:31:52 UTC
db | LOG: MultiXact member wraparound protections are now enabled
db | LOG: database system is ready to accept connections
db | LOG: autovacuum launcher started
webapp | Postgres is up - executing command
webapp | wait-for-it.sh: waiting for broker:6379 without a timeout
webapp | wait-for-it.sh: broker:6379 is available after 0 seconds
webapp |
webapp | _ __ __ ____ ____ __ ___
webapp | | | / /__ / /_ / __ \/ __ \/ |/ /
webapp | | | /| / / _ \/ __ \/ / / / / / / /|_/ /
webapp | | |/ |/ / __/ /_/ / /_/ / /_/ / / / /
webapp | |__/|__/\___/_.___/\____/_____/_/ /_/
webapp |
webapp |
webapp | Checking python version... 3.x, good!
webapp | Checking GDAL version... GDAL 3.2.2, released 2021/03/05, excellent!
webapp | Setup git modules...
webapp | fatal: No url found for submodule path 'src/rio-tiler' in .gitmodules
webapp | Setup npm dependencies...
worker | Postgres is up - executing command
worker | wait-for-it.sh: waiting for broker:6379 without a timeout
worker | wait-for-it.sh: broker:6379 is available after 0 seconds
worker | wait-for-it.sh: waiting for webapp:8000 without a timeout
webapp | npm WARN [email protected] requires a peer of [email protected]^15.7.0 but none is installed. You must install peer dependencies yourself.
webapp | npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/chokidar/node_modules/fsevents):
webapp | npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
webapp | npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
webapp | npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
webapp |
webapp | audited 1287 packages in 15.338s
webapp |
webapp | 70 packages are looking for funding
webapp | run `npm fund` for details
webapp |
webapp | found 75 vulnerabilities (15 low, 41 moderate, 19 high)
webapp | run `npm audit fix` to fix them, or `npm audit` for details
webapp | npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
webapp | npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
webapp |
webapp | audited 594 packages in 16.507s
webapp |
webapp | 19 packages are looking for funding
webapp | run `npm fund` for details
webapp |
webapp | found 14 vulnerabilities (10 moderate, 4 high)
webapp | run `npm audit fix` to fix them, or `npm audit` for details
webapp | Setup pip requirements...
webapp | Obtaining rio-tiler from git+git://github.com/OpenDroneMap/rio-tiler.git#egg=rio-tiler (from -r requirements.txt (line 56))
webapp | Updating ./src/rio-tiler clone
webapp | Running command git fetch -q --tags
webapp | Running command git reset --hard -q d304092cec16ca9c0398fb8a2036ae6a462d5b97
webapp | Preparing metadata (setup.py): started
webapp | Preparing metadata (setup.py): finished with status 'done'
webapp | Ignoring rasterio: markers 'sys_platform == "win32"' don't match your environment
webapp | Ignoring GDAL: markers 'sys_platform == "win32"' don't match your environment
webapp | Ignoring Shapely: markers 'sys_platform == "win32"' don't match your environment
webapp | Ignoring eventlet: markers 'sys_platform == "win32"' don't match your environment
webapp | Ignoring pyopenssl: markers 'sys_platform == "win32"' don't match your environment
webapp | Requirement already satisfied: amqp==2.5.2 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 1)) (2.5.2)
webapp | Collecting anyjson==0.3.3
webapp | Downloading anyjson-0.3.3.tar.gz (8.3 kB)
webapp | Preparing metadata (setup.py): started
webapp | Preparing metadata (setup.py): finished with status 'done'
webapp | Requirement already satisfied: appdirs==1.4.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 3)) (1.4.0)
webapp | Requirement already satisfied: APScheduler==3.2.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 4)) (3.2.0)
webapp | Requirement already satisfied: billiard==3.6.3.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 5)) (3.6.3.0)
webapp | Requirement already satisfied: celery==4.4.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 6)) (4.4.0)
webapp | Requirement already satisfied: coreapi==2.0.9 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 7)) (2.0.9)
webapp | Requirement already satisfied: Django==2.1.15 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 8)) (2.1.15)
webapp | Requirement already satisfied: django-appconf==1.0.2 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 9)) (1.0.2)
webapp | Requirement already satisfied: django-codemirror2==0.2 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 10)) (0.2)
webapp | Requirement already satisfied: django-colorfield==0.1.15 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 11)) (0.1.15)
webapp | Requirement already satisfied: django-compressor==2.2 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 12)) (2.2)
webapp | Requirement already satisfied: django-cors-headers==3.0.2 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 13)) (3.0.2)
webapp | Requirement already satisfied: django-filter==2.0.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 14)) (2.0.0)
webapp | Requirement already satisfied: django-guardian==1.4.9 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 15)) (1.4.9)
webapp | Requirement already satisfied: django-imagekit==4.0.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 16)) (4.0.1)
webapp | Requirement already satisfied: django-libsass==0.7 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 17)) (0.7)
webapp | Requirement already satisfied: django-webpack-loader==0.6.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 18)) (0.6.0)
webapp | Requirement already satisfied: djangorestframework==3.9.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 19)) (3.9.1)
webapp | Requirement already satisfied: djangorestframework-jwt==1.9.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 20)) (1.9.0)
webapp | Requirement already satisfied: drf-nested-routers==0.11.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 21)) (0.11.1)
webapp | Requirement already satisfied: funcsigs==1.0.2 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 22)) (1.0.2)
webapp | Collecting futures==3.0.5
webapp | Downloading futures-3.0.5.tar.gz (25 kB)
webapp | Preparing metadata (setup.py): started
webapp | Preparing metadata (setup.py): finished with status 'done'
webapp | Requirement already satisfied: geojson==2.3.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 24)) (2.3.0)
webapp | Requirement already satisfied: gunicorn==19.7.1 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 25)) (19.7.1)
webapp | Requirement already satisfied: itypes==1.1.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 26)) (1.1.0)
webapp | Requirement already satisfied: kombu==4.6.7 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 27)) (4.6.7)
webapp | Requirement already satisfied: libsass==0.19.4 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 28)) (0.19.4)
webapp | Collecting Markdown==2.6.7
webapp | Downloading Markdown-2.6.7.zip (413 kB)
webapp | βββββββββββββββββββββββββββββββββββββ 413.3/413.3 KB 478.2 kB/s eta 0:00:00
webapp | Preparing metadata (setup.py): started
webapp | Preparing metadata (setup.py): finished with status 'done'
webapp | Requirement already satisfied: olefile==0.44 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 30)) (0.44)
webapp | Requirement already satisfied: openapi-codec==1.1.7 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 31)) (1.1.7)
webapp | Requirement already satisfied: packaging==16.8 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 32)) (16.8)
webapp | Requirement already satisfied: piexif==1.0.13 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 33)) (1.0.13)
webapp | Requirement already satisfied: pilkit==2.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 34)) (2.0)
webapp | Collecting Pillow==6.2.2
webapp | Downloading Pillow-6.2.2.tar.gz (37.8 MB)
webapp | βββββββββββββββββββββββββββββββββββββββ 37.8/37.8 MB 463.0 kB/s eta 0:00:00
webapp | Preparing metadata (setup.py): started
webapp | Preparing metadata (setup.py): finished with status 'done'
webapp | Requirement already satisfied: pip-autoremove==0.9.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 36)) (0.9.0)
webapp | Collecting psycopg2==2.8.4
webapp | Downloading psycopg2-2.8.4.tar.gz (377 kB)
webapp | βββββββββββββββββββββββββββββββββββββ 377.9/377.9 KB 345.8 kB/s eta 0:00:00
webapp | Preparing metadata (setup.py): started
webapp | Preparing metadata (setup.py): finished with status 'error'
webapp | error: subprocess-exited-with-error
webapp |
webapp | Γ python setup.py egg_info did not run successfully.
webapp | β exit code: 1
webapp | β°β> [23 lines of output]
webapp | running egg_info
webapp | creating /tmp/pip-pip-egg-info-k6_dldes/psycopg2.egg-info
webapp | writing /tmp/pip-pip-egg-info-k6_dldes/psycopg2.egg-info/PKG-INFO
webapp | writing dependency_links to /tmp/pip-pip-egg-info-k6_dldes/psycopg2.egg-info/dependency_links.txt
webapp | writing top-level names to /tmp/pip-pip-egg-info-k6_dldes/psycopg2.egg-info/top_level.txt
webapp | writing manifest file '/tmp/pip-pip-egg-info-k6_dldes/psycopg2.egg-info/SOURCES.txt'
webapp |
webapp | Error: pg_config executable not found.
webapp |
webapp | pg_config is required to build psycopg2 from source. Please add the directory
webapp | containing pg_config to the $PATH or specify the full executable path with the
webapp | option:
webapp |
webapp | python setup.py build_ext --pg-config /path/to/pg_config build ...
webapp |
webapp | or with the pg_config option in 'setup.cfg'.
webapp |
webapp | If you prefer to avoid building psycopg2 from source, please install the PyPI
webapp | 'psycopg2-binary' package instead.
webapp |
webapp | For further information please check the 'doc/src/install.rst' file (also at
webapp | <http://initd.org/psycopg/docs/install.html>).
webapp |
webapp | [end of output]
webapp |
webapp | note: This error originates from a subprocess, and is likely not a problem with pip.
webapp | error: metadata-generation-failed
webapp |
webapp | Γ Encountered error while generating package metadata.
webapp | β°β> See above for output.
webapp |
webapp | note: This is an issue with the package mentioned above, not pip.
webapp | hint: See above for details.
webapp | Build translations...
webapp | Building fr .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/fr/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/fr/LC_MESSAGES
webapp | Building es .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/es/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/es/LC_MESSAGES
webapp | Building it .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/it/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/it/LC_MESSAGES
webapp | Building de .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/de/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/de/LC_MESSAGES
webapp | Building tr .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/tr/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/tr/LC_MESSAGES
webapp | Building ru .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/ru/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/ru/LC_MESSAGES
webapp | Building pt_BR .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/pt_BR/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/pt_BR/LC_MESSAGES
webapp | Building ko .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/ko/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/ko/LC_MESSAGES
webapp | Building zh_Hant .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/zh_Hant/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/zh_Hant/LC_MESSAGES
webapp | Building az .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/az/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/az/LC_MESSAGES
webapp | Building pl .po files into .mo
webapp | processing file djangojs.po in /webodm/locale/pl/LC_MESSAGES
webapp | processing file django.po in /webodm/locale/pl/LC_MESSAGES
webapp | Setup webpack watch...
webapp | Running migrations
webapp | Traceback (most recent call last):
webapp | File "/webodm/manage.py", line 22, in <module>
webapp | execute_from_command_line(sys.argv)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
webapp | utility.execute()
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/__init__.py", line 375, in execute
webapp | self.fetch_command(subcommand).run_from_argv(self.argv)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/base.py", line 316, in run_from_argv
webapp | self.execute(*args, **cmd_options)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/base.py", line 350, in execute
webapp | self.check()
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/base.py", line 376, in check
webapp | all_issues = self._run_checks(
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/commands/migrate.py", line 60, in _run_checks
webapp | issues.extend(super()._run_checks(**kwargs))
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/management/base.py", line 366, in _run_checks
webapp | return checks.run_checks(**kwargs)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/checks/registry.py", line 71, in run_checks
webapp | new_errors = check(app_configs=app_configs)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/checks/urls.py", line 13, in check_url_config
webapp | return check_resolver(resolver)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/core/checks/urls.py", line 23, in check_resolver
webapp | return check_method()
webapp | File "/usr/local/lib/python3.9/dist-packages/django/urls/resolvers.py", line 396, in check
webapp | for pattern in self.url_patterns:
webapp | File "/usr/local/lib/python3.9/dist-packages/django/utils/functional.py", line 37, in __get__
webapp | res = instance.__dict__[self.name] = self.func(instance)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/urls/resolvers.py", line 533, in url_patterns
webapp | patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/utils/functional.py", line 37, in __get__
webapp | res = instance.__dict__[self.name] = self.func(instance)
webapp | File "/usr/local/lib/python3.9/dist-packages/django/urls/resolvers.py", line 526, in urlconf_module
webapp | return import_module(self.urlconf_name)
webapp | File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
webapp | return _bootstrap._gcd_import(name[level:], package, level)
webapp | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
webapp | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
webapp | File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
webapp | File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
webapp | File "<frozen importlib._bootstrap_external>", line 855, in exec_module
webapp | File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
webapp | File "/webodm/webodm/urls.py", line 26, in <module>
webapp | url(r'^', include('app.urls')),
webapp | File "/usr/local/lib/python3.9/dist-packages/django/urls/conf.py", line 34, in include
webapp | urlconf_module = import_module(urlconf_module)
webapp | File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
webapp | return _bootstrap._gcd_import(name[level:], package, level)
webapp | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
webapp | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
webapp | File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
webapp | File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
webapp | File "<frozen importlib._bootstrap_external>", line 855, in exec_module
webapp | File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
webapp | File "/webodm/app/urls.py", line 38, in <module>
webapp | url(r'^api/', include("app.api.urls")),
webapp | File "/usr/local/lib/python3.9/dist-packages/django/urls/conf.py", line 34, in include
webapp | urlconf_module = import_module(urlconf_module)
webapp | File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
webapp | return _bootstrap._gcd_import(name[level:], package, level)
webapp | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
webapp | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
webapp | File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
webapp | File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
webapp | File "<frozen importlib._bootstrap_external>", line 855, in exec_module
webapp | File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
webapp | File "/webodm/app/api/urls.py", line 12, in <module>
webapp | from .tiler import TileJson, Bounds, Metadata, Tiles, Export
webapp | File "/webodm/app/api/tiler.py", line 7, in <module>
webapp | from rio_tiler.mercator import get_zooms
webapp | ModuleNotFoundError: No module named 'rio_tiler.mercator'
The main error is the place where it says:
no module named rio_tiler.mercator
How can I resolve this? I want to run WebODM in dev mode so I can make edits to the code directly.