-
-
Notifications
You must be signed in to change notification settings - Fork 398
Description
Hi everyone,
I have already raised this issue within the BPY community.
https://projects.blender.org/blender/blender/issues/148944#issuecomment-1752928
What is happening is:
1 - blender ships with OpenEXR 3.3.5 as per the VFXPlatform
2 - import bpy loads all of blenders dependencies into memory, this includes the 3.3.5 copy of openexr.dll which is loaded out of [envroot]\Lib\site-packages\bpy\OpenEXR.dll
3 - import OCC.Core.IGESControl runs a long chain of imports that ends up trying to load freetype.dll from [envroot]\myenv\Lib\site-packages\OCC\Core\freetype.dll which is linked against openexr 3.2.x
4 - Freetype.dll needs the following symbol ?readMemoryMapped@IStream@Imf_3_2@@UEAAPEADH@Z
5 - This symbol does not exist in openexr.dll in 3.3.5
6 - This leads to a OS loader error where it refuses to load freetype.dll due to the missing import
7- this error ruins the load of the package and python ends up giving the following error ImportError: DLL load failed while importing _IGESControl: The specified procedure could not be found.
These two packages are just inherently binary incompatible and the core reason things like the VFX platform exist.
Steps to reproduce:
Create a clean Python environment (e.g. Conda or venv)
Install both packages:
python>=3.11,<3.12.a0
conda install -c conda-forge pythonocc-core=7.9.0
pip install bpy==4.4.0
Therefore my Question: is there a possibilty to build pythonocc-core based on OpenEXR 3.3.5 ?
If that's possible, how can i do this with conda or what have i to change before starting the build and compile process.
Hence my question: Is there a way to build pythonocc-core based on the newer version OpenEXR 3.3.5?
If so, how can I do this with conda, or what do I need to change before starting the build and compilation process?
I would greatly appreciate any ideas or comments on this issue.
Best regards Paul