Нужно в python файле открыть другой python файл, с абсолютным путём заданным пользователем

У меня есть 2 файла:

prog.py(Допустим по пути C:\prog.py)

from tkinter.filedialog import askopenfilename

filepath = askopenfilename() # "D:/path/file.py"
file = open(filepath, "r") 

и file.py

class SomeClass:
    def __init__(self):
        print("test")

Как импортировать файл file.py, или если точнее класс SomeClass из file.py во время работы программы? без использования "import something.something_another"


Ответы (1 шт):

Автор решения: stalker320

Ответ обнаружил в стандартной библиотеке importlib.

import importlib.util
import sys

# For illustrative purposes.
name = 'itertools'

if name in sys.modules:
    print(f"{name!r} already in sys.modules")
elif (spec := importlib.util.find_spec(name)) is not None:
    # If you chose to perform the actual import ...
    module = importlib.util.module_from_spec(spec)
    sys.modules[name] = module
    spec.loader.exec_module(module)
    print(f"{name!r} has been imported")
else:
    print(f"can't find the {name!r} module")
→ Ссылка