您可以使用__import__
如果你有代表模塊的字符串列表,但如果你按照提示的文件中,直接使用importlib.import_module
它可能是更清潔:
import importlib
requirements = [lib1, lib2, lib3, lib4, lib5]
imported_libs = {lib: importlib.import_module(lib) for lib in requirements}
你不必進口庫,可用的變量這種方式,但你可以通過imported_libs
字典訪問它們:
>>> requirements = ['sys', 'itertools', 'collections', 'pickle']
>>> imported_libs = {lib: importlib.import_module(lib) for lib in requirements}
>>> imported_libs
{'collections': <module 'collections' from 'lib\\collections\\__init__.py'>,
'itertools': <module 'itertools' (built-in)>,
'pickle': <module 'pickle' from 'lib\\pickle.py'>,
'sys': <module 'sys' (built-in)>}
>>> imported_libs['sys'].hexversion
50660592
你也可以更新您的globals
,然後用它們像他們祁門功夫泰德「正常」:
>>> globals().update(imported_libs)
>>> sys
<module 'sys' (built-in)>
的Python實際上確實有一個內置的函數['__import__'(http://docs.python.org/library/functions.html#__import__),你可以用它來進口一個以字符串命名的模塊。但它意味着從執行'import'語句而不是來自用戶代碼。在這種情況下,它肯定不是合適的解決方案。 – 2010-07-15 22:38:09
哦!真的非常感謝所有的答案。他們都很好。 – Eduardo 2010-07-15 22:59:40