diff --git a/swh/model/cli.py b/swh/model/cli.py
index 312a0247b35d1d0830d0824b3cec6638faa366e9..effdf8a86334046840917a96a3debb954360f580 100644
--- a/swh/model/cli.py
+++ b/swh/model/cli.py
@@ -9,7 +9,15 @@ from typing import Dict, List, Optional
 
 # WARNING: do not import unnecessary things here to keep cli startup time under
 # control
-import click
+try:
+    import click
+except ImportError:
+    print(
+        "Cannot run swh-identify; the Click package is not installed."
+        "Please install 'swh.model[cli]' for full functionality.",
+        file=sys.stderr,
+    )
+    exit(1)
 
 try:
     from swh.core.cli import swh as swh_cli_group
@@ -101,7 +109,13 @@ def swhid_of_origin(url):
 
 
 def swhid_of_git_repo(path) -> CoreSWHID:
-    import dulwich.repo
+    try:
+        import dulwich.repo
+    except ImportError:
+        raise click.ClickException(
+            "Cannot compute snapshot identifier; the Dulwich package is not installed. "
+            "Please install 'swh.model[cli]' for full functionality.",
+        )
 
     from swh.model import hashutil
     from swh.model.identifiers import snapshot_identifier