Open EraYaN opened 2 years ago
Hi, thank you very much for detailed instructions. I was able to follow along even though I'm not into Windows development. It might help creating windows prebuilt wheels of jxlpy.
As for your issue, unfortunately I wasn't able to reproduce it. For me, all examples work fine.
I really hate being but it works on my pc
guy but that's what it is :/
In the meantime, I did a quick search for this issue and found out, it might be related to Cython. (source 1, 2)
I will attach my prebuilt and repaired wheel below if that helps, maybe try using it.
Right that gives the same result here, so it's probably some problem with my Cython version or environment
Would you be able to tell me how you installed cython and what version you are running? here it installed Cython-0.29.26-py2.py3-none-any.whl
from pypi
EDIT; Seems like lossless mode does work, but for example quality=75, effort=6 does not. Also tried is on an other Windows 10 machine and it also does not work there, not sure what is wrong. Did you build with VS2022?
My Cython version is the same as yours, installed automatically as a dependency of jxlpy. I'm running Windows 10 build 19042 on VirtualBox. Python 3.9.10, cython 0.29.26. My CPU (amd64) supports avx2 (in your error log there was something about libhwy executing some avx2 instructions but I doubt it's relevant). I installed libjxl with VS2022 using vcpkg.
I did some encoding/decoding tests with lossless and lossy mode and everything seems fine..
Alright I'm running python 3.9.5 maybe if I upgrade that and I just tried with 3.9.10 and same problem my windows version is 21H1 (build 19043). But still the same behavior, the actual site of the access violation is within preprocessor guards for the MSVC compiler. (using some intrinsics) Can cython build with clang on windows?
I'm stumped as to why this is happening.
When building this wheel on Windows using:
This gives an access violation on calling
im.save
, with the call stackSo it seems to happen on the call here.
Do note to make this work you need to add the follwing to setup.py
Any ideas?