导入前安装模块

时间:2016-02-03 14:51:18

标签: python import module install

我想知道在尝试导入模块之前是否可以使用我的python脚本安装模块。当我现在运行我的脚本时,它将尝试导入模块(当然)但我希望它安装模块,然后检查它是否可以导入它。

更新1

这是我想用于在脚本运行时安装它的安装脚本:

def install():
print("\nChecking for dependencies, please stand by...")
with hideInfo():
    if str(os.name) == 'nt':
        easy_install.main(['textract'])
        pip.main(['install', 'logging'])
        pip.main(['install', 'datetime'])
    else:
        pip.main(['install', 'textract'])
        pip.main(['install', 'logging'])
        pip.main(['install', 'datetime'])

time.sleep(1)
menu()

3 个答案:

答案 0 :(得分:0)

不确定

  1. Install programmatically,然后尝试导入(而不是从命令行安装)

  2. 只需将导入语句添加到现有安装脚本的末尾(如果已经是编程的话)

  3. # normal installation routine
    try:
        import foobar        
    except ImportError:
       panic()
    
    1. Call an external install command in python(sudo apt-get install python-foobar,例如。)
    2. 需要考虑的事项

      • 通常,要安装软件包,您需要提升权限或sudo权限。您可能不希望python运行时的其余部分也具有这些功能,因此单独安装可以避免危险(例如,如果您正在进行文件处理)。
      • 如果失败,大多数安装脚本都会报告。进行额外检查本身并不有用。
      • 在没有人许可的​​情况下安装东西对他们来说很烦人。如果您要分发此脚本,我会建议不要这样做。我不希望我下载的软件包覆盖我的numpy发行版,因为它认为这是一个好主意
      • 如果您要将其安装到本地目录,然后尝试从本地目录导入,那么这不一定非常好地表明可以从整个计算机访问已安装的软件包。这可能是也可能不是问题

答案 1 :(得分:0)

我以不同的方式修复它。我使用了一个名为“importlib”的模块。有了这个,我能够尝试,除了尝试导入模块的方式,如果它不起作用,安装它。

答案 2 :(得分:0)

对于任何偶然发现此事的人来说,这里有一个链接,可以在一个脚本中轻松完成此任务

https://stackoverflow.com/a/24773951/3754128