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
)