파이썬 추가 기능 도구에서 다중 처리 작업을 실행하고 싶습니다. 내 문제는 프로세스가 계속 실패한다는 것입니다. 기본적으로 ArcMap이 충돌합니다.
내 기본 코드는 다음과 같습니다.
def function(startOID, endOID, fc):
wrksp = r"c:\temp\mp_addintest\data\test_%s.txt" % (int(startOID) + int(endOID))
# real logic removed to dumb it down
with open(wrksp, 'w') as writer:
writer.write("%s to %s from %s \n" % (startOID, endOID, fc))
return wrksp
class btnMP(object):
"""Implementation for src_addin.MPButton (Button)"""
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
pool = None
try:
pythonExe = os.path.join(sys.exec_prefix, 'python.exe')
multiprocessing.set_executable(pythonExe)
pool = multiprocessing.Pool(4)
results = []
for i in xrange(4):
results.append(pool.apply_async(function, [str(1),
str(i),
str("test")]))
pool.close()
pool.join()
for result in results:
print result.get()
except:
del pool
print 'error'
ArcMap 외부 또는 도구 상자에서 코드를 실행하면 문제없이 작동하지만 버튼 안에 논리를 넣으면 아크 맵이 중단됩니다.
내 생각에 ArcMap은 모든 파이썬 추가 기능에 대해 처리 중입니다. 이 문제에 대한 해결 방법이 있습니까?
코드에 freeze_support ()를 추가하려고 시도했지만 아무것도하지 않았습니다.
1
ArcMap이 충돌하면 ESRI 지원 센터에 문의하십시오. 그들이 복제 할 수 있다면 버그를 인정하고 언젠가는 고칠 수도 있습니다.
—
GIS-Jonathan
이미 출시 된 ArcGIS 10.x 용 5 개의 서비스 팩을 모두 설치 했습니까? 아마도 도움이 될 것입니다
—
Sergios Kolios
영업 이익은 10.1 사용
—
페트르 크렙스
또한 서비스 팩은 누적되므로 최신 버전 만 설치하지 않고 각각 연속해서 설치하면됩니다.
—
blah238
10.1 SP1이 이번 주에 릴리스되었습니다.
—
Timothy Michael