小编典典

在代码中安装python模块

python

我需要直接在脚本中从PyPi安装软件包。也许有一些模块或distutils(distribute,pip等)功能使我可以执行类似的操作,pypi.install('requests')并且请求将被安装到我的virtualenv中。


阅读 220

收藏
2020-12-20

共1个答案

小编典典

从脚本安装软件包的官方推荐方法是通过子进程调用pip的命令行界面。pip不支持此处提出的大多数其他答案。此外,自pip v10起,所有代码都已pip._internal精确定位,以使用户清楚不允许以编程方式使用pip。

使用sys.executable,以确保您将调用相同pip与当前运行相关联。

import subprocess
import sys

def install(package):
    subprocess.check_call([sys.executable, "-m", "pip", "install", package])

您还可以使用类似:

import pip

def install(package):
    if hasattr(pip, 'main'):
        pip.main(['install', package])
    else:
        pip._internal.main(['install', package])

# Example
if __name__ == '__main__':
    install('argh')
2020-12-20