Импорт модуля Python с ошибкой абсолютного пути - PullRequest
0 голосов
/ 21 февраля 2019

Как импортировать модуль с абсолютным путем и передать параметр этому модулю, чтобы вызываемый модуль мог фактически использовать эту переменную внутри него?Под абсолютным путем я подразумеваю что-то вроде "/home/example.com/directory/file.py".Я получаю имя этого модуля как часть аргумента командной строки моего фактического сценария.Внутри этого скрипта я должен импортировать file.py и передать им определенные аргументы.Код Ex:

    filename = '/home/example.com/directories/file.py'
    path = re.split(filename, script_path, maxsplit=1)[0]
    print(path) --> /home/example.py/directories/
    module_name = filename.rstrip('.py')
    print(module_name) --> file.py
    spec = importlib.util.spec_from_file_location(module_name, path)
    module = importlib.util.module_from_spec(spec)
    print(type(module))
    # filepath = re.sub('/','.',script_path)
    # print(filepath)
    # module = importlib.import_module(script_path)
    module.testvars = [r_config, t_config]
    # spec.loader.exec_module(module)
    alltest = unittest.TestSuite()
    alltest.addTest(unittest.findTestCases(module))
    runner = unittest.TextTestRunner()

Но я получаю следующую ошибку с этим кодом:

Traceback (most recent call last):                                                            module = importlib.util.module_from_spec(spec)
  File "<frozen importlib._bootstrap>", line 568, in module_from_spec
AttributeError: 'NoneType' object has no attribute 'loader'
...