it seems that --ignore doesn't take in consideration the full path of the file, so it's impossible to exclude a sub-directory. So it's not really a "glob/.gitignore match" as documented, as they work on the whole path.
$ dirhash -l ./ --ignore .venv | grep '\.venv' | head -1
.venv/bin/activate
It also seems that it breaks other ignores: .pyc can be excluded:
$ dirhash -l ./ --ignore \*.pyc| grep '\.pyc$' | head -1
but using two excludes pattern they come back.
$ dirhash -l ./ --ignore \*.pyc --ignore .venv | grep '\.pyc$' | head -1
.venv/lib/python3.7/__pycache__/__future__.cpython-37.pyc
dirhash version is 0.2.1