【python – 跨进程共享多处理同步原语】教程文章相关的互联网学习教程文章

Python多处理将子进程的stdout重定向到Tkinter Text【代码】

我正在尝试使用Tkinter GUI来启动子进程并将其stdout / stderr输出显示到Text小部件.最初,我认为通过设置“sys.stdout = text_widget”可以很容易地将sys.stdout重定向到Text小部件,但似乎没有.它出现错误:“文本实例没有属性’flush’”. 我在网上查了一下,得到了一些解决方案,比如使用Queue与子进程进行通信.但是,由于我的特殊要求,它们都不适合我的情况: >最好通过“multiprocessing.Process”启动子进程,因为使用共享变量会更...

如何将数据从Python中的不同本地/远程进程流式传输到程序的STDIN中?【代码】

标准流与程序相关联.所以,假设那里是一个已经以某种方式运行的程序(我不关心如何或在有什么办法).目标是为STDIN创建管道来自不同进程(或程序)的程序本地或远程并以异步方式将数据流入其中. 可用信息是(1)主机地址和(2)程序的pid.在这种情况下,如何在Python中实现这两种情况? 编辑:我应该提到这个预设.目标操作系统是具有(相当)最新内核的Linux.解决方法:这不是可移植的,但在许多Linux系统上,您可以写入/proc/$PID/fd/0我认为如果...

python – aws – “无法导入模块’进程’:/ var /task/numpy/core/multiarray.so:无效的ELF头”

使用aws lambda我在使用numpy模块运行脚本时收到以下错误:Unable to import module ‘process’: /var/task/numpy/core/multiarray.so:invalid ELF header这个问题是关于numpy本身还是natsy特别是在aws lambda上.什么是无效的ELF标题? 编辑: 我相信这与本机代码执行有关,如本答案“invalid ELF header” when using the nodejs “ref” module on AWS Lambda所述解决方法:问题与我在本地计算机架构上编译的multiarray.so文件有关...

Python在并行进程之间共享字典【代码】

我想在我的进程之间共享一个字典,如下所示:def f(y,x):y[x]=[x*x] if __name__ == '__main__':pool = Pool(processes=4)inputs = range(10)y={} result = pool.map(f,y,inputs)y返回{}.我怎样才能使它工作? 谢谢,解决方法:这看起来像您正在使用多处理模块.你没有说,这是一个重要的信息. multiprocessing.Pool()实例上的.map()函数有两个参...

python – 在Gunicorn / Flask应用程序中的进程之间共享静态全局数据

我有一个在Gunicorn下运行的Flask应用程序,使用同步工作器类型和20个工作进程.该应用程序在启动时读取大量数据,这需要时间并使用内存.更糟糕的是,每个进程加载自己的副本,这会导致它花费更长的时间并占用20倍的内存.数据是静态的,不会改变.我想加载一次,让所有20名员工分享它. 如果我使用preload_app设置,它只加载一个线程,最初只占用1X内存,但是一旦请求开始进入,它似乎会变成20X.我需要快速随机访问数据,所以我宁愿不做IPC. 有没...

python – 在执行I / O绑定任务时,20个进程中的400个线程在4个进程中超过400个线程【代码】

实验代码 以下是可以启动指定数量的工作进程,然后在每个进程中启动指定数量的工作线程并执行获取URL任务的实验代码:import multiprocessing import sys import time import threading import urllib.requestdef main():processes = int(sys.argv[1])threads = int(sys.argv[2])urls = int(sys.argv[3])# Start process workers.in_q = multiprocessing.Queue()process_workers = []for _ in range(processes):w = multiprocessing...

在Python中模拟子进程调用【代码】

我有一个方法(run_script)想测试.具体来说,我想测试一下对subprocess.Popenoccurs的调用.测试subprocess.Popen甚至更好用某些参数调用.当我运行测试时,我得到TypeError:’tuple’对象不可调用. 如何测试我的方法以确保实际使用模拟调用子进程?@mock.patch('subprocess.Popen') def run_script(file_path):process = subprocess.Popen(['myscript', -M, file_path], stdout=subprocess.PIPE)output,err = process.communicate()re...

Python:使用多处理从不同进程附加到同一列表【代码】

我需要使用多处理将对象附加到来自不同进程的一个列表“L”,但它返回空列表. 如何使用多处理将许多进程附加到列表“L”?#!/usr/bin/python from multiprocessing import Process L=[] def dothing(i,j):L.append("anything")print i if __name__ == "__main__":processes=[]for i in range(5):p=Process(target=dothing,args=(i,None))p.start()processes.append(p)for p in processes:p.join() print L解决方法:全局变量不在进程...

如何在Python中的多进程中解决“AttributeError:__ exit__”问题?【代码】

我试图重写一些csv读取代码,以便能够在Python 3.2.2中的多个核心上运行它.我尝试使用多处理的Pool对象,我从工作示例改编(并且已经为我的项目的另一部分工作).我遇到了一条错误消息,我发现很难解密和排除故障. 错误:Traceback (most recent call last):File "parser5_nodots_parallel.py", line 256, in <module>MG,ppl = csv2graph(r)File "parser5_nodots_parallel.py", line 245, in csv2graphnode_chunks)File "/Library/Frame...

python – 使用具有最大同时进程数的multiprocessing.Process【代码】

我有Python代码:from multiprocessing import Processdef f(name):print 'hello', nameif __name__ == '__main__':for i in range(0, MAX_PROCESSES):p = Process(target=f, args=(i,))p.start()运行良好.但是,MAX_PROCESSES是可变的,可以是介于1和512之间的任何值.因为我只在具有8个内核的机器上运行此代码,所以我需要找出是否可以限制允许在其中运行的进程数.同时.我已经研究过multiprocessing.Queue,但它看起来不像我需要的 –...

python – 实时拦截子进程输出的问题【代码】

我花了大约6个小时来堆栈溢出,重写我的python代码并尝试让它工作.它只是没有.不管我做什么. 目标:使子流程的输出实时显示在tkinter文本框中. 问题:我无法弄清楚如何让Popen实时工作.它似乎一直挂起,直到该过程完成. (单独运行,该过程完全按预期工作,所以只有这个有错误) 相关代码:import os import tkinter import tkinter.ttk as tk import subprocessclass Application (tk.Frame):process = 0def __init__ (self, master=Non...

python – 如何使用call调用子进程/ Popen继承环境变量【代码】

首先,对我所确定的显而易见的道歉是我对bash,shell和子进程的基本理解. 我正在尝试使用Python来自动调用一个名为Freesurfer的程序(实际上,我正在调用的子程序称为recon-all.) 如果我直接在命令行执行此操作,我将“源”一个名为mySetUpFreeSurfer.sh的脚本,除了设置三个环境变量之外什么都不做,然后“源”另一个脚本FreeSurferEnv.sh. FreesurferEnv.sh在我看来并没有做任何事情,只是设置了很多环境变量并向终端回应了一些东西,但它...

在Python中的进程之间共享许多队列【代码】

我知道multiprocessing.Manager()以及它如何用于创建共享对象,特别是可以在worker之间共享的队列.有this question,this question,this question甚至one of my own questions. 但是,我需要定义很多队列,每个队列都链接一对特定的进程.假设每对进程及其链接队列由变量键标识. 当我需要放置和获取数据时,我想使用字典来访问我的队列.我无法做到这一点.我尝试过很多东西.将多处理导入为mp: 在all_keys中定义类似于key的dict:由多处理...

python – 进程以退出代码-1073741571结束【代码】

我有一个递归函数,它正在寻找欧拉路径.我不认为函数的定义是相关的(但如果有人这么认为,我也会粘贴它). 问题是当我运行带有大图的函数时,我收到以下众所周知的错误:RuntimeError: maximum recursion depth exceeded in cmp 即使没有上述问题,我也知道我需要使用以下命令增加递归限制import sys sys.setrecursionlimit(5000)问题是,无论我使用的是什么号码,我都会得到最大递归错误或我的程序暂停,屏幕上没有输出但是:进程以退出代...

将Python脚本作为Windows后台进程运行

参见英文答案 > How to run a python script in the background? 5个我一直在尝试编写一个从串口读取数据的python脚本.它从命令行运行良好,但我需要它作为后台进程运行,没有任何命令行界面.该脚本有一个while循环,它从串行端口读取下一个数据字节并相应地模拟按键.对于要关注当前窗口的按键,而不是python命令行,我需要脚本作为后台进程运行.我在这里读了几个答案,但对我来说没有什么响铃.请指出...

同步 - 相关标签