我正在尝试从字符串加载模块,但它也是一个.so
文件。这有效:
import imp
mod = imp.load_dynamic('module.name','path/to/my_module.so')
mod.function(x)
但我想从 Python 字符串加载模块。我尝试使用 read 方法创建一个自定义类并将其传入:
s = string_with_read('.so file text....')
mod = imp.load_dynamic('module.name',s)
但它告诉我TypeError: must be string, not instance
。所以,它想要一个文件的路径。无论如何我可以制作一个假文件并将其传递给它吗?我愿意使用 python3 或更新的导入模块,importlib
; imp
只是看起来更容易。
这是string_with_read
课程,尽管这种方法目前不起作用。
class string_with_read:
def __init__(self,s):
self.s = s
def read(self):
return self.s
def readlines(self):
return self.s.splitlines()