'str' 对象没有属性 'exec_module'
'str' object has no attribute 'exec_module'
我正在尝试在 google colab 中使用 importlib 将 test.py 文件中的脚本代码作为模块导入。
这是我的代码:
def load_module(file_name, module_name):
spec = importlib.util.spec_from_loader(module_name, file_name)
module = importlib.util.module_from_spec(spec)
print(spec.loader)
spec.loader.exec_module(module)
sys.modules[module_name] = module
return module
def get_file(path):
SCRIPT_FILE = open(path,'r')
return SCRIPT_FILE
我运行上面的函数用于从test.py
获取lib
file =get_file('/content/gdrive/MyDrive/test/test.py')
module = load_module("from lib import *\n" + file.read(),'crawl')
我遇到了这个错误
AttributeError: 'str' object has no attribute 'exec_module'
请帮忙!谢谢
在第 2 行中,您为第二个函数参数传入类型 string
而不是类型 Loader
。如果您查看 documentation,加载程序似乎没有根据您的路径生成:
spec = importlib.util.spec_from_loader(module_name, file_name)
Here 是使用 spec_from_loader
的示例实现,通过使用 ExtensionFileFinder
.
生成加载程序
但是,对于您的用例,您可以尝试使用spec_from_file_location
? This way, you can see if it can generate your spec based on the file path you passed in. Try passing the path into the location
参数吗?
我正在尝试在 google colab 中使用 importlib 将 test.py 文件中的脚本代码作为模块导入。 这是我的代码:
def load_module(file_name, module_name):
spec = importlib.util.spec_from_loader(module_name, file_name)
module = importlib.util.module_from_spec(spec)
print(spec.loader)
spec.loader.exec_module(module)
sys.modules[module_name] = module
return module
def get_file(path):
SCRIPT_FILE = open(path,'r')
return SCRIPT_FILE
我运行上面的函数用于从test.py
获取libfile =get_file('/content/gdrive/MyDrive/test/test.py')
module = load_module("from lib import *\n" + file.read(),'crawl')
我遇到了这个错误
AttributeError: 'str' object has no attribute 'exec_module'
请帮忙!谢谢
在第 2 行中,您为第二个函数参数传入类型 string
而不是类型 Loader
。如果您查看 documentation,加载程序似乎没有根据您的路径生成:
spec = importlib.util.spec_from_loader(module_name, file_name)
Here 是使用 spec_from_loader
的示例实现,通过使用 ExtensionFileFinder
.
但是,对于您的用例,您可以尝试使用spec_from_file_location
? This way, you can see if it can generate your spec based on the file path you passed in. Try passing the path into the location
参数吗?