python-3.x - 如何从 os.popen 获取完整的执行信息
问题描述
我正在尝试pip install
其他代码需要的一些模块。如果os.system("pip install module_name")
返回 1,我想检查失败的原因。
我试图用它os.popen()
来获取一些额外的信息,但os.popen("pip install module_name").read()
只返回了执行信息的第一行。
有没有人碰巧知道如何获取完整的信息,以便我可以记录并稍后修复它?
解决方案
os.popen
不是很强大。使用subprocess.Popen
和communicate
:
import subprocess
p = subprocess.Popen("pip3 install module_name",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)
stdout, stderr = p.communicate()
print("STATUS:", p.returncode)
print("STDOUT:", stdout)
print("STDERR:", stderr)
推荐阅读
- react-native - React Native - 可滚动的 SVG 文本
- java - 清除检查点位置后 Spark Structured Streaming 消耗的旧 Kafka 偏移量
- linux - 运行 linux shell 脚本时的不同结果
- linux - 在 Postgresql 错误中:/usr/local/lib/x86_64-linux-gnu/perl/5.26.1/warnings.pm: Permission denied at /usr/bin/psql line 19
- angular - 无法在 Angular 项目中运行 ng serve
- sql - 在 SQL 中合并不尊重 ON
- docker - 如何使用 docker 容器通过 Rundeck 调用 Ansible?
- python - 如何在python中为countourf分配正确的颜色图
- ruby-on-rails - 是否可以使用连接表作为模型的基础?
- python - 为 Python3 安装 Charm-Crypto 时出现问题