2013-06-04 48 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

好的。這兩個答案對我來說都是正確的 –