2016-07-11 37 views
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

回答

相关问题