我可以使用函数导入或安装模块吗

Can I use a function to either import or install a module

我是运行 Windows 7, Python 2.7, Anaconda 4.0.0:

这就是我想要做的。我想把这段代码放在一个函数中。

try:
    import easygui
except ImportError:
    from os import system
    system('pip install easyqui')
    import easygui
else:
    pass

这是我想到的,但我无法让它发挥作用。

def install(mypack):
    try:
        import mypack
    except ImportError:
        from os import system
        system('pip install ' + str(mypack))
        import mypack
    else:
        pass
install('easygui')

我得到的错误是 "ImportError: No module named mypack"。

import 语句按字面意义获取模块名称,而不仅仅是对其他对象的引用。所以 import mypack 不会转换为 import easygui,而是 import module mypack

相反,您应该使用内置的 __import__,它接受 name/string:

__import__(mypack)