我正在尝试从字符串加载模块,但它也是.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()