使用pip在运行时安装程序

时间:2015-08-10 12:25:36

标签: python plugins pip

我有一个带插件功能的程序,如果我不使用它,我不想安装setup.py中的所有插件。只应在主程序的配置中激活它们时才应安装它们。

运行主程序时是否可以使用pip安装这些程序?

这样的事情:

try:
   if PLUGINNAME not installed:
      pip install PLUGINNAME

我知道可以使用os.system强制控制台输入,但这看起来非常糟糕。

2 个答案:

答案 0 :(得分:4)

您可以通过尝试导入模块来执行此操作。如果未安装该模块,则会给出ImportError,您可以安装该软件包。

import pip
import imp

try:
    imp.find_module(package)
except ImportError:
    pip.main(['install', package])

答案 1 :(得分:-2)

你应该使用这个

import pip
import sys

def install(package):
    package in sys.modules
    if package:
        #do nothing 
    else:
        pip.main(['install', package])
# Example
if __name__ == '__main__':
     install('argh')