conda-forge / python-feedstock

A conda-smithy repository for python.
BSD 3-Clause "New" or "Revised" License
46 stars 105 forks source link

DLL load failing for windows platform and python >=3.9.8 and 3.10 #552

Closed petrushy closed 2 years ago

petrushy commented 2 years ago

Issue:

JCC-feedstock tests are failing due to not finding DLL files in windows, when python version is 3.10 or 3.9.8 or higher. 3.9.7 works. This is related to orekit-feedstock as well, which uses JCC to build. With orekit (currently version on conda-forge) it can be seen that if manually downgrading python to 3.9.7 (no other packages) it works, while at 3.9.9 it does not. It work well on other platforms.

Issue for JCC: https://github.com/conda-forge/jcc-feedstock/pull/58 PR for debugging: https://github.com/conda-forge/jcc-feedstock/pull/58

Any help appriciated

isuruf commented 2 years ago

Python 3.8 changed the DLL resolution order https://docs.python.org/3/whatsnew/3.8.html#bpo-36085-whatsnew We reverted this patch as many extensions were failing, but restored this behaviour in 3.9.9+ and 3.10.0+ as enough time had passed since this change in cpython upstream. You should use os.add_dll_directory to add the path to the jvm.dll to the top of jcc\__init__.py.

petrushy commented 2 years ago

Many thanks! Works indeed!