pythonpython-importlib

How to use importlib.resources.path(package, resource)?


I'm creating a _GeneratorContextManager with the following code.

try:
    import importlib.resources as pkg_resources
except ImportError:
    # Try backported to PY<37 `importlib_resources`.
    import importlib_resources as pkg_resources
from . import file_resources

package_path= pkg_resources.path(file_resources, "IWNLP.Lemmatizer_20181001.json")

Here is the debugger view of the variable package_path.

debugger view of variable package_path

Now I want to pass the path of the file "IWNLP.Lemmatizer_20181001.json" to another function:

 lemmatizer = IWNLPWrapper(lemmatizer_path=package_path)

The documentation says "The context manager provides a pathlib.Path object". How can I access the pathlib.Path object?


Solution

  • with pkg_resources.path(file_resources, "IWNLP.Lemmatizer_20181001.json") as p:
        package_path = p
    

    p is a variable of type PosixPath and contains the full path to the file IWNLP.Lemmatizer_20181001.json. See https://docs.python.org/3.8/library/pathlib.html#pathlib.Path .