首页 > 解决方案 > 通过从 python 文件中引用来安装 requirements.txt 中存在的包

问题描述

我有以下requirements.txt文件:

beautifulsoup4=4.8.2==py37_0
urllib3=1.25.8=py37_0
pyopenssl=19.1.0=py37_0
openssl=1.1.1d=h1de35cc_4
pandas=1.0.1=py37h6c726b0_0
tqdm=4.42.1=py_0

我需要安装所有这些包,或者确保它们是从 python 脚本中安装的。我怎样才能做到这一点?

标签: pythonpip

解决方案


使用以下内容:

import subprocess
import sys

command = [
    sys.executable,
    '-m',
    'pip',
    'install',
    '--requirement',
    'requirements.txt',
]

subprocess.check_call(command)

使用sys.executable获取当前正在运行的 Python 解释器的路径并将其与-m pip可执行模块)一起使用以确保 100% 确保为该特定解释器安装pip ,这一点非常重要。实际上,仅调用pip( script ) 绝对不能保证将调用什么 Python 解释器,pip它可以与系统上的任何 Python 解释器相关联。

此外subprocess.check_call,确保在进程未成功结束(即安装未成功)时引发错误。

以下建议即使不危险,也是不可靠的:

  • os.system('pip install -r requirements.txt')

参考资料


推荐阅读