2013-06-04 26 views
2

我曾尝试以下:字符串变量作为导入模块符

>> modname = 'sys' 
>> import modname 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
ImportError: No module named modname 

为什么进口不受承认“SYS”作为模块的名称需要进口?

回答

4

使用importlib模块,如果你想导入基于字符串的模块。

>>> import importlib 
>>> mod = importlib.import_module('sys') 
>>> mod 
<module 'sys' (built-in)> 
+0

谢谢。这是一种解决方法(因此给予好评),但它并不完全回答我的问题,或者是不是? –

+0

@MarcosGonzalez你不能用一个字符串 – jamylak

+0

@MarcosGonzalez做'import'说法并不适用于字符串。 –

2
>>> modname = 'sys' 
>>> sys = __import__(modname) 
+0

谢谢。这是一种解决方法(因此,upvote),但它不完全回答我的问题,或不是吗? –

+0

@MarcosGonzalez我建议你接受AshwiniChaudhary的答案这是目前接受的方式做到这一点 – jamylak

+0

好的。这两个答案对我来说都是正确的 –