草庐IT

pipe-lining

全部标签

Python 3.4 多处理队列比 Pipe 快,出乎意料

这个问题在这里已经有了答案:Synchronous/AsynchronousbehaviourofpythonPipes(1个回答)关闭4个月前。我正在做一个从udp套接字接收样本的音频播放器,一切正常。但是当我实现了一个LostConcealment算法时,播放器未能以异常(exception)的速率保持沉默(每10毫秒发送一个包含多个160字节的列表)。当使用pyaudio播放音频时,使用阻塞调用write播放一些样本,我注意到它在样本持续时间内平均阻塞。所以我创建了一个新的专用流程来播放样本。主进程处理音频的输出流,并使用multiprocessing.Pipe将结果发送到该进程

python - 如果stdout = PIPE,我如何找出为什么subprocess.Popen wait() 永远等待?

我有一个写入标准输出和可能标准错误的程序。我想从python运行它,捕获标准输出和标准错误。我的代码如下:fromsubprocessimport*p=Popen(exe,shell=TRUE,stdout=PIPE,stderr=PIPE)rtrncode=p.wait()对于几个程序,这可以正常工作,但是当我添加一个新程序时,新程序会永远挂起。如果我删除stdout=PIPE,程序会将其输出写入控制台并完成,一切都很好。如何确定导致挂起的原因?在WindowsXP上使用python2.5。该程序不会从标准输入读取数据,也没有任何类型的用户输入(即“按下键”)。

python - 不要在异常堆栈中显示 Python raise-line

当我在我的Python库中引发自己的异常时,异常堆栈将引发行本身显示为堆栈的最后一项。这显然不是错误,在概念上是正确的,但是当您在外部使用代码(例如作为模块)时,将重点放在对调试无用的东西上。有没有办法避免这种情况并强制Python将上一个到最后一个堆栈项显示为最后一个,就像标准Python库一样。 最佳答案 适当的警告:修改解释器的行为通常是不受欢迎的。在任何情况下,准确查看引发错误的位置可能有助于调试,尤其是当函数可能因多种不同原因引发错误时。如果您使用traceback模块,并将sys.excepthook替换为自定义函数,这

python - 我可以通过 pytest 测试运行 line_profiler 吗?

我已经用确定了一些长期运行的pytest测试py.test--durations=10我现在想用line_profiler或cprofile之类的东西来检测其中一个测试。我真的很想从测试本身获取配置文件数据,因为pytest设置或拆除很可能是缓慢的一部分。但是考虑到line_profiler或cprofile通常如何参与,我不清楚如何使它们与pytest一起使用。 最佳答案 像这样运行pytest:python3-mcProfile-oprofile-mpytest你甚至可以传入可选参数:python3-mcProfile-opro

python - 正则表达式 : match character group or end of line

如何在[](字符组)中匹配^(行首)和$(行尾)?简单例子干草堆字符串:zazty规则:匹配任何“z”或“y”如果前面有一个“a”,“b”;或在行首。通过:匹配前两个“z”一个可行的正则表达式是:(?:^|[aAbB])([zZyY])但我一直认为在字符组内使用类似的内容会更简洁[^aAbB]([zZyY])(在该示例中假设^表示行首,而不是它的真正含义,字符组的否定)注意:使用python。但是知道在bash和vim上也会很好。更新:再次阅读manual它说对于字符集,一切都失去了它的特殊含义,除了字符类(例如\w)在字符类列表中,有\A作为行首,但这不起作用[\AaAbB]([zZ

Python PEP8 : Blank lines convention

我有兴趣了解程序部分之间换行符的Python约定是什么?例如,考虑一下:importosdeffunc1():deffunc2():什么应该是理想的换行符分隔:import模块和功能?函数本身?我已阅读PEP8,但我想确认以上两点。 最佳答案 导入语句和其他代码之间有两个空行。每个函数之间有两个空行。 关于PythonPEP8:Blanklinesconvention,我们在StackOverflow上找到一个类似的问题: https://stackoverf

python - 在 Mac OS X 上使用 pip 安装 pycrypto 时出现 Broken Pipe 错误

我正在尝试通过pip在OSX上安装pycrypto(2.3版)。当编译器尝试编译MD2.c时,我收到“Brokenpipe”错误。我在使用easy_install时遇到了一个非常相似的错误。这是我得到的错误:bash-3.2$bash-3.2$sudopipinstallpycryptoPassword:Downloading/unpackingpycryptoRunningsetup.pyegg_infoforpackagepycryptoInstallingcollectedpackages:pycryptoRunningsetup.pyinstallforpycryptowarn

python - 交互式 Python : cannot get `%lprun` to work, 尽管 line_profiler 已正确导入

问题大多数iPython“魔术函数”对我来说都能很好地工作:%hist、%time、%prun等。但是,我注意到%lprun在我最初安装的iPython中找不到。尝试解决然后我发现我应该安装line_profiler模块。我已经安装了这个模块,但似乎仍然无法让魔法功能正常工作。如果我尝试调用%lprun,iPython仍然找不到该函数。如果我用全名(line_profiler.magic_lprun)调用它,可以找到该函数,但我根本无法让它工作。下面是我所做的一个例子(这是从“PythonforDataAnalysis”一书中逐步完成的):成功使用%prun[在:]defadd_and

"empty lines"中的 Python 缩进

首选哪个(“.”表示空格)?一)deffoo():x=1y=2....ifTrue:bar()B)deffoo():x=1y=2ifTrue:bar()我的直觉是B(这也是vim为我所做的),但我看到人们一直在使用A)。仅仅是因为大多数编辑器都坏了吗? 最佳答案 如果你使用A,你可以在pythonshell中复制粘贴你的block,B会出现意外的缩进错误。 关于"emptylines"中的Python缩进,我们在StackOverflow上找到一个类似的问题:

python - 如何在 IPython 笔记本中隐藏 <matplotlib.lines.Line2D>

我正在绘制一个NumPy值数组,I,在%matplotlib中使用IPython笔记本使用绘图命令的内联模式plt.plot(I,'o').结果输出是:Out[159]:[,,,,,,,........]然后我的情节显示在这些输出线的下方。有没有办法只显示情节并隐藏从输出? 最佳答案 您可以使用分号;结束该行。这会在生成绘图时抑制不需要的输出:plt.plot(I,'o');一般来说,使用分号会阻止IPython从代码块的该行打印任何输出值。例如,执行包含代码1+1;的单元格将不会输出2。另一种方法是将变量绑定(bind)到绘图:_