文字列からモジュールをロードしようとしていますが、それも.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()