on master help sign in
[fix] drop Python 2: use importlib instead of imp.load_source

imp.load_source is not documented in Python 3 see documentation : https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly partial fix of https://github.com/searx/searx/issues/1674

commit15013e64d8a1cb21a9edab429b153ab83b5f1db5 authorAlexandre Flament <alex@al-f.net> dateMon 5 Oct 2020, 12:50 (6 years ago) parent584760c
1 file changed+6−3
searx/utils.py+6−3
searx/utils.py+6−3
@@ -3,8 +3,8 @@ import os
33import sys
44import re
55import json
6+import importlib
67
7−from imp import load_source
88from numbers import Number
99from os.path import splitext, join
1010from io import open
@@ -445,8 +445,11 @@ def load_module(filename, module_dir):
445445 if modname in sys.modules:
446446 del sys.modules[modname]
447447 filepath = join(module_dir, filename)
448− module = load_source(modname, filepath)
449− module.name = modname
448+ # and https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly
449+ spec = importlib.util.spec_from_file_location(modname, filepath)
450+ module = importlib.util.module_from_spec(spec)
451+ sys.modules[modname] = module
452+ spec.loader.exec_module(module)
450453 return module
451454
452455