Posts: 4
Threads: 1
Joined: Oct 2025
I am wondering if anyone knows of how to get havsfunc working on Arch Linux. I have successfully used it for a couple years, but the
vapoursynth-plugin-havsfunc-git package no longer works. When running a vpy script, I get this error:
ImportError: cannot import name 'BM3D' from 'vsdenoise' (/usr/lib/python3.13/site-packages/vsdenoise/__init__.py). Did you mean: 'bm3d'?
This exact error has been mentioned in the comments of the AUR package webpage in June/July, but it has not been addressed:
https://aur.archlinux.org/packages/vapou...vsfunc-git
This exact error has also been mentioned as an issue on the havsfunc Github page below in June (with 7 likes), but it has not been addressed:
https://github.com/HomeOfVapourSynthEvol.../issues/95
Posts: 12.004
Threads: 63
Joined: May 2017
Hybrid only does not use havsfunc at all.
I removed the last reliances to havsfunc in February iirc.
Hybrid uses these scripts:
https://github.com/Selur/VapoursynthScriptsInHybrid/
=> moving to 'A/V Talk' since it's not related to Hybrid.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 12.004
Threads: 63
Joined: May 2017
Here are my 2 cents about the problem. (untested)
Looking at vsdenoise:
https://github.com/Jaded-Encoding-Thauma...3d.py#L561
it seems like BM3D is defined in bm3d.py
and
the vsdenoise/__init__.py
https://github.com/Jaded-Encoding-Thauma..._init__.py
does include:
"from .bm3d import *"
=>
Is vsdenoise installed ? (pip show vsdenoise)
Does it contain 'from .bm3d import *' ?
(grep -A3 'from .bm3d' /usr/lib/python3.13/site-packages/vsdenoise/__init__.py)
Hmm,.. seeing that
https://github.com/HomeOfVapourSynthEvol...me-ov-file only mentions
vs-jetpack, and looking at:
https://github.com/Jaded-Encoding-Thauma..._init__.py
and seeing that it calls "from .blockmatch import *" and
https://github.com/Jaded-Encoding-Thauma...C13-L36C17
defines
__all__ = ["bm3d", "wnnm"]
a. you should deinstall vsdenoise and install vs-jetpack
b. instead of BM3D , 'bm3d' probably needs to be includes in havsfunc.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 4
Threads: 1
Joined: Oct 2025
Thanks for the response. The
vapoursynth-plugin-havsfunc-git package has
vapoursynth-plugin-vsjetpack-git and
vapoursynth-plugin-bm3d-git as dependencies. There are packages called
vapoursnyth-plugin-vsdenoise and
vapoursynth-plugin-vsdenoise-git, but those conflict with the
vapoursynth-plugin-vsjetpack-git package.
https://aur.archlinux.org/packages/vapou...=1#pkgdeps
Posts: 12.004
Threads: 63
Joined: May 2017
Then in havsfunc, instead of BM3D ''bm3d' should be included in havsfunc.
from vsdenoise import BM3D, nl_means, prefilter_to_full_range
should be:
from vsdenoise import bm3d, nl_means, prefilter_to_full_range
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 4
Threads: 1
Joined: Oct 2025
Thanks, I tried that and now I'm getting this error:
Script evaluation failed:
Python exception: cannot import name 'complexpr_available' from 'vsexprtools' (/usr/lib/python3.13/site-packages/vsexprtools/__init__.py)
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 3378, in vapoursynth._vpy_evaluate
File "src/cython/vapoursynth.pyx", line 3379, in vapoursynth._vpy_evaluate
File "temp.vpy", line 2, in <module>
import havsfunc as haf
File "/usr/lib/python3.13/site-packages/havsfunc/__init__.py", line 1, in <module>
from .havsfunc import *
File "/usr/lib/python3.13/site-packages/havsfunc/havsfunc.py", line 8, in <module>
from vsexprtools import complexpr_available, norm_expr
ImportError: cannot import name 'complexpr_available' from 'vsexprtools' (/usr/lib/python3.13/site-packages/vsexprtools/__init__.py)
Posts: 12.004
Threads: 63
Joined: May 2017
Judging by:
https://github.com/HomeOfVapourSynthEvol...53-L330C58
and
https://github.com/Jaded-Encoding-Thauma...op.py#L695
you probably need to replace every occurrence of 'complexpr_available' with 'ExprOp'.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 4
Threads: 1
Joined: Oct 2025
Thanks, that seems to have fixed it!