2
一个solution这个问题对于Python 2,但它使用的imp
模块,该模块在Python 3如何从字符串中导入Python 3中的模块?
imp
弃用已替换为importlib
这对于基于文件的导入效果很好。具体来说,importlib.import_module
需要一个文件名 - 不是字符串或文件处理程序。
我通过URL的内容转储到一个文件并导入它
def initlog():
modulename = '_mylogging'
try:
import _mylogging
except ImportError:
r = requests.get('http://(...)/mylogging.py')
with open(modulename+'.py', "w") as f:
f.write(r.text)
finally:
import _mylogging
return _mylogging.MYLogging().getlogger()
,但我想,以避免中间文件进行了解决方法。
抛开安全性,网络性能和可用性问题 - 有没有一种方法可以将字符串提供给importlib
?(或从一个文件处理程序,在这种情况下,我会用io.StringIO
)