代码之家  ›  专栏  ›  技术社区  ›  Nanda Kishore

在python中以命令形式执行字符串

  •  1
  • Nanda Kishore  · 技术社区  · 17 年前

    我正在用python开发我的东西。在这个过程中,我遇到了一种情况,我有一个名为“import django”的字符串。我想验证这个字符串。这意味着,我想检查所提到的模块(本例中为“django”)是否在python路径中。我怎么做?

    3 回复  |  直到 17 年前
        1
  •  14
  •   Yoni Samlan    17 年前

    我之前的回答是错误的——我认为没有必要测试我的代码。不过,这实际上是可行的:看看 imp

    要仅在当前sys.path中检查模块的可导入性:

    try:
        imp.find_module('django', sys.path)
    except ImportError:
        print "Boo! no django for you!"
    
        2
  •  1
  •   SilentGhost    17 年前

    我不认为这是安全的,但这是最简单的解决方案:

    try:
         exec('import django')
    except ImportError:
        print('no django')
    
        3
  •  1
  •   Akbar ibrahim    17 年前

    如果模块的名称可用作字符串,则可以使用内置的 __import__

    module = __import__("module name", {}, {}, [], -1)
    

    例如

    os = __import__("os", {}, {}, [], -1)