python - 通过从 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 脚本中安装的。我怎样才能做到这一点?
解决方案
使用以下内容:
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')
参考资料:
推荐阅读
- r - R:从记录列表中生成数据框的最简单方法
- vb.net - 如何允许用户下载网站根目录中的文件?
- javascript - javascript展平数组并使用reduce删除重复项
- javascript - 我可以导入一个 handleChange 函数并绑定它以在任何组件中使用吗?
- uwp - no puedo realizar este efecto parallax de wpf en uwp, alguien me podria orientar a solucionar este inconveniente?
- spring - 找不到适合响应类型的 HttpMessageConverter
- c++ - 两个 C++ 程序之间通过标准 I/O 进行通信
- xml - 如何将 XML 文件与 XSD 架构链接?
- javascript - 如果对象属性键与变量名匹配,为什么在 javascript / typescript 中可以省略对象属性键?
- python - 从 while 循环创建一个列表