I'm trying to load the shared library which internally uses some resources. File structure is the following:
dir_a/script.py
dir_a/lib/lib.so
dir_a/model/model.bin
From script.py
I'm using the following code to load tge library:
from ctypes import *
from os import path
script_dir = path.dirname(path.realpath(__file__))
lib_path = path.join(script_dir, "lib/lib.so")
lib = cdll.LoadLibrary(lib_path )
This allows me to run the script not only from script directory, but from the other directories as well and library location is resolved properly:
cd dir_a/lib
python ../script.py
But I'm facing with model.bin
file access issue. Looks like library tries to load it using model/model.bin
string literal and it is resolved only when I'm running the script from dir_a
directory.
Is it possible to somehow specify working directory to loaded library to be the root directory to relative paths?