diff --git a/spacy/util.py b/spacy/util.py index d83fe3416..645f8b3f7 100644 --- a/spacy/util.py +++ b/spacy/util.py @@ -22,7 +22,7 @@ import ujson from .symbols import ORTH from .compat import cupy, CudaStream, path2str, basestring_, input_, unicode_ -from .compat import copy_array, normalize_string_keys, getattr_ +from .compat import copy_array, normalize_string_keys, getattr_, import_file LANGUAGES = {} @@ -112,15 +112,13 @@ def load_model(name, **overrides): def load_model_from_link(name, **overrides): """Load a model from a shortcut link, or directory in spaCy data path.""" - init_file = get_data_path() / name / '__init__.py' - spec = importlib.util.spec_from_file_location(name, str(init_file)) + path = get_data_path() / name / '__init__.py' try: - cls = importlib.util.module_from_spec(spec) + cls = import_file(name, path) except AttributeError: raise IOError( "Cant' load '%s'. If you're using a shortcut link, make sure it " "points to a valid model package (not just a data directory)." % name) - spec.loader.exec_module(cls) return cls.load(**overrides)