I can't load my model because I can't put a PosixPath
I'm setting up a script and I need to use some functions from fast-ai package. The fact is that I'm on Windows and when I define my paths, the function from fast-ai named load_learner can't load the model.

I've tried to change the function into the package as:

state = pickle.load(open(str(path) + '/' + str(fname), 'rb'))

instead of:

state = pickle.load(open(path/fname, 'rb'))

but I obtain this error:

 File "lib\site-packages\fastai\basic_train.py", line 462, in load_learner
    state = pickle.load(open(path/fname, 'rb'))
  File "\lib\pathlib.py", line 1006, in __new__
    % (cls.__name__,))
NotImplementedError: cannot instantiate 'PosixPath' on your system


My paths are defined as:

folder_path = './models/model1'
fname = 'model.pkl'


and I call the function as:
model = load_learner(folder_path, fname)

How can I use Windows paths in this function?



UPDATE 1

The answer posted was correct only on Linux. I still have the issue on Windows. I didn't find a way to pass through the PosixPath on Windows. The only solution that I found is to change the internal packages from my modules but it is not a secure way to solve this kind of issue.



Thanks in advance.

Just redirect PosixPath to WindowsPath.
import pathlib
temp = pathlib.PosixPath
pathlib.PosixPath = pathlib.WindowsPath

I am also loading fastai models and this trick works.
