如何使用imp从另一个python脚本导入所有内容

如何使用imp从另一个python脚本导入所有内容,python,python-3.x,Python,Python 3.x,这是我的run.py文件: import imp import os for script in os.listdir("MyFolder"): if os.path.isdir("MyFolder/" + script) == False and script.endswith(".py"): script = imp.load_dynamic(script[:-3], f"MyFolder/{sc

这是我的run.py文件:

import imp
import os

for script in os.listdir("MyFolder"):
    if os.path.isdir("MyFolder/" + script) == False and script.endswith(".py"):
        script = imp.load_dynamic(script[:-3], f"MyFolder/{script}")

print(script.multiply(2,6))
然后是MyFolder/example.py文件:

def multiply(x:int, y:int):
    return x * y
这已经起作用了,但是除了imp,我该如何从example.py import*中执行呢 因此,这可能会起作用:

import imp
import os

for script in os.listdir("MyFolder"):
    if os.path.isdir("MyFolder/" + script) == False and script.endswith(".py"):
        imp.load_dynamic(script[:-3], f"MyFolder/{script}")

print(multiply(2,6))

imp
模块被弃用,取而代之的是
importlib

与其让动态模块的名称跟随脚本的名称,不如将其设置为常量,这样会更容易一些。e、 g

import importlib.util
import os
import sys

for script in os.listdir("MyFolder"):
    script_path = os.path.join("MyFolder", script)
    if not os.path.isdir(script_path) and script_path.endswith(".py"):
        spec = importlib.util.spec_from_file_location("example", script_path)
        sys.modules["example"] = importlib.util.module_from_spec(spec)
        spec.loader.load_module("example")

        from example import *


print(multiply(4, 5))