2016-07-11 73 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

回答

相關問題