【问题标题】:Can I use a function to either import or install a module [duplicate]我可以使用函数来导入或安装模块吗[重复]
【发布时间】:2017-03-08 17:16:42
【问题描述】:

我正在运行 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”。

【问题讨论】:

    标签: python function python-import


    【解决方案1】:

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

    相反,您应该使用带有名称/字符串的内置 __import__

    __import__(mypack)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 2020-08-14
    • 2017-08-03
    • 2017-03-24
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多