【发布时间】:2018-03-29 14:03:04
【问题描述】:
我想知道是否有办法让多处理在这段代码中工作。我应该改变什么,或者多处理中是否存在其他允许我执行该操作的功能。
您可以调用locateOnScreen('calc7key.png') 函数来获取屏幕坐标。返回值是一个 4 整数元组:(left, top, width, height)。
我收到错误:
checkNumber1 = resourceBlankLightTemp[1]
TypeError: 'Process' object does not support indexing
import pyautogui, time, os, logging, sys, random, copy
import multiprocessing as mp
BLANK_DARK = os.path.join('images', 'blankDark.png')
BLANK_LIGHT = os.path.join('images', 'blankLight.png')
def blankFirstDarkResourcesIconPosition():
blankDarkIcon = pyautogui.locateOnScreen(BLANK_DARK)
return blankDarkIcon
def blankFirstLightResourcesIconPosition():
blankLightIcon = pyautogui.locateOnScreen(BLANK_LIGHT)
return blankLightIcon
def getRegionOfResourceImage():
global resourceIconRegion
resourceBlankLightTemp = mp.Process(target = blankFirstLightResourcesIconPosition)
resourceBlankDarkTemp = mp.Process(target = blankFirstDarkResourcesIconPosition)
resourceBlankLightTemp.start()
resourceBlankDarkTemp.start()
if(resourceBlankLightTemp == None):
checkNumber1 = 2000
else:
checkNumber1 = resourceBlankLightTemp[1]
if(resourceBlankDarkTemp == None):
checkNumber2 = 2000
else:
checkNumber2 = resourceBlankDarkTemp[1]
【问题讨论】:
-
docs.python.org/2/library/…
mp.Process返回一个 Process 对象,而不是一个可迭代对象。我认为您希望使用Pipe,但我对 MP 并不精通。 -
所以实际的问题是:如何获得在
Process中处理的函数调用的结果。 this 有帮助吗? -
@tobias_k 令人震惊的是,存在一个几乎与 exact 标题相同的问题。