Python Popen().stdout.read() 挂起

2024-04-01

我正在尝试使用 Python 获取另一个脚本的输出subprocess.Popen就像下面这样

process = Popen(command, stdout=PIPE, shell=True)
exitcode = process.wait()
output = process.stdout.read()   # hangs here

仅当我将其作为 python 脚本运行并且无法在 python shell 中重现时,它才会挂在第三行。

另一个脚本只打印几个单词,我假设这不是缓冲区问题。

有谁知道我在这里做错了什么?


你可能想使用.communicate() http://docs.python.org/2/library/subprocess.html#subprocess.Popen.communicate而不是.wait() plus .read()。请注意有关警告wait() on the subprocess文档页面:

警告这在使用时会死锁stdout=PIPE and/or stderr=PIPE并且子进程生成足够的输出到管道,以便它阻塞等待操作系统管道缓冲区接受更多数据。使用communicate()以避免这种情况。

http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Popen().stdout.read() 挂起 的相关文章

随机推荐

  • libuv 只是 POSIX 系统上 libev 的包装吗?

    我真的很困惑 libev 和 libuv libuv 只是 POSIX 系统上 libev 的包装吗 如果不是的话区别在哪里 不再 从 libuv v0 9 开始 这是libuv github问题 https github com joye
  • 访问 VBA:如何获取表单中的输入并在查询中使用它们

    HI 我有一个带有几个按钮的表单 每个按钮运行几行代码 代码中也有查询 例如 select from table where number 6 现在 如果我想在表单中输入数字 我该怎么做 在按钮附近添加一个未绑定的文本控件 更新您的按钮代码
  • 如何在 R 中使用神经网络包时实现自己的误差函数?

    我正在尝试在 R 中的神经网络包中实现自定义错误函数 通常使用代表误差平方和和交叉熵的 sse 和 ce 来计算误差 任何人都可以向我提供有关如何实现自己的误差函数的详细信息 虽然软件包说我们可以使用自定义的错误函数 但用户手册中没有对此提
  • 有没有办法判断 Safari 是否全屏? (例如 document.fullscreenElement)

    我正在尝试使用 Javascript 确定 Safari 是否处于全屏模式 Chrome 和 Mozilla 都使用带有供应商前缀的 document fullscreenElement 版本 isFullscreen function r
  • 单击 Firebase 动态链接后 - DynamicLinks.dynamicLinks().handleUniversalLink 返回 false

    我正在使用 Firebase 动态链接 并且在 Firebase 控制台中创建的链接很少 这是我复制粘贴到电子邮件并单击的示例短链接 https app xxx com deeplink xyz https app xxx com deep
  • 对象跟随鼠标光标

    我正在做一个Wpf应用程序 我创建了一个眼睛形状的控件 我在画布中放置了一个椭圆 眼睛 我的目的是当鼠标光标进入画布时 椭圆跟随鼠标光标 您对如何执行此任务有什么建议吗 非常感谢您的关注 Cheers EDIT 我已经更新了 Xaml 中的
  • 创建特定大小的零向量

    我想初始化一个具有在运行时确定的特定大小的零向量 在 C 语言中 它会是这样的 int main void uint size get uchar int A size size memset A 0 size size sizeof in
  • C++/CLI pin_ptr

    是 C CLI 的pin ptr http msdn microsoft com en us library 1dz8byfh 28v vs 80 29 aspx相当于C 的固定陈述 http msdn microsoft com en u
  • 警告:错误的管道:没有元素“x264enc”

    过去几天我一直在努力让它运行 我有一个需要 x264enc 的 gstreamer 命令 我正在运行一个Mac我似乎无法安装 x264 开发库 我已经安装了gst plugins bad但这没有帮助 我在论坛中读到 在安装之前我需要先安装
  • 如何拆分 Visual Studio 解决方案?

    我有一个 Visual Studio 2008 解决方案 其中包含超过 40 个相互依赖的 C 和 C CLI 项目 使用该解决方案的速度非常慢 通常我一次只需要几个项目 因此我决定将解决方案拆分为包含 3 5 个项目的多个解决方案 我还想
  • php 5.x 7.x,ssl pdo 错误:对等证书 CN=`someName' 与预期的 CN='someIP' 不匹配

    我们有一个在端口 3306 上带有 mysql 的服务器 我们有证书和密钥 并且我们尝试连接到该服务器 但我们看到这样的问题 对等证书 CN SomeName 与预期的 CN someIP 不匹配 我读了很多文章 但找不到 PDO PHP
  • Symfony 2 安全性:不断从用户提供商重新加载数据?

    当用户已经登录时 安全组件会在每次请求时不断从用户提供程序重新加载数据 有办法避免这种情况吗 当您的用户提供程序不在本地数据库中 例如在 Web 服务中 时 这可能会显着降低系统速度 对于每个请求我都会得到这个 2012 08 15 20
  • 如何将变量从一个应用程序域传递到另一个应用程序域

    我想知道 如果我有一个变量 例如一个字符串 如何将其值传递到我的新应用程序域 static string str static void Main string args str abc AppDomain domain AppDomain
  • 未在虚拟机内分配外部 IP

    我正在尝试设置几个 Centos 6 虚拟机 我为它们分配了静态 IP 但运行 ifconfig 时 我看不到外部 IP 只看到内部 IP Google 不允许这种功能吗 除了Anderson所说的之外 这是从实例本身查询外部IP的命令 c
  • 是否有 API 可以通过编程方式制作 MS Office 365 Powerpoint 演示文稿?

    可以用谷歌来完成 但我们这里使用微软的产品 我希望能够发出 JSON 请求 向其发送一些可访问图像的 URL 并为每个图像创建一张幻灯片 有几种方法可以解决这个问题 第一种是使用 MS PPT 中附带的内置 API 它是一组 COM 对象
  • 每个 Unix 文件描述都有自己的读/写缓冲区吗?

    在参照这个问题 https stackoverflow com q 5200923 1586关于 read 和 write 我想知道每个打开的文件描述是否都有自己的读写缓冲区 或者当文件一次打开多次时 文件是否可能有一个读写缓冲区 我很好奇
  • 启动 Eclipse 导致无法创建 Java 虚拟机

    启动 eclipse exe 时出现错误消息 创建Java虚拟机失败 当我单击 eclipsec exe 时 Eclipse 将启动 有什么区别eclipse exe and eclipsec exe 为什么昨天运行的 eclipse ex
  • gRPC 客户端在 Kubernetes 内重新连接

    如果我们在 Kubernetes Pod 中定义微服务 那么当服务 Pod 重新启动时 我们是否需要检测 gRPC 客户端重新连接 当 Pod 重新启动时 主机名不会更改 但我们不能保证 IP 地址保持不变 那么 gRPC 客户端是否仍然能
  • React Native Android:显示来自 Java 的 Activity

    我需要在 React native 中显示一个 Activity Native android Java 我知道这个问题已经被问过几次了 但没有一个对我有帮助 我没有找到任何关于如何在 React Native 中调用 打开 Activit
  • Python Popen().stdout.read() 挂起

    我正在尝试使用 Python 获取另一个脚本的输出subprocess Popen就像下面这样 process Popen command stdout PIPE shell True exitcode process wait outpu