मैं आईपीथॉन के लिए नया हूं और इंटरमीडिएट परिणामों को आईपीथॉन समांतर क्लस्टर फ़ंक्शंस चलाने के दौरान stdout पर प्रिंट करना चाहता हूं। (मुझे पता है कि कई प्रक्रियाओं के साथ, यह आउटपुट को उलझन में डाल सकता है, लेकिन यह ठीक है - यह केवल परीक्षण/डिबगिंग के लिए है, और जो प्रक्रियाएं मैं चल रहा हूं वह इतनी लंबी है कि इस तरह की टक्कर असंभव है।) मैंने चेक किया IPython के लिए प्रलेखन लेकिन एक उदाहरण नहीं मिल सकता है जहां समांतर फ़ंक्शन प्रिंट करता है। मूल रूप से, मैं एक तरह से मुख्य stdout,आईपीथॉन समानांतर प्रक्रियाओं में stdout के लिए प्रिंटिंग
subprocess.Popen(... , stdout=...)
मुद्रण के IPython बराबर प्रक्रिया के अंदर करने के लिए subprocesses के प्रिंट उत्पादन अनुप्रेषित करने के लिए देख रहा हूँ काम नहीं करता:
rc = Client()
dview = rc()
def ff(x):
print(x)
return x**2
sync = dview.map_sync(ff,[1,2,3,4])
print('sync res=%s'%repr(sync))
async = dview.map_async(ff,[1,2,3,4])
print('async res=%s'%repr(async))
print(async.display_outputs())
sync res=[1, 4, 9, 16]
async res=[1, 4, 9, 16]
तो गणना सही ढंग से कार्यान्वित दिखाए, लेकिन समारोह एफएफ में प्रिंट बयान मुद्रित कभी नहीं है, यहां तक कि नहीं जब सभी प्रक्रियाओं returne है घ। मैं क्या गलत कर रहा हूँ? मैं काम करने के लिए "प्रिंट" कैसे प्राप्त करूं?
बहुत उपयोगी उत्तर। गणना के दौरान stdout प्रिंटआउट देखने का कोई तरीका है? – spencerlyon2
हां - प्रिंट स्टेटमेंट्स के लिए, आउटपुट आंशिक होने पर भी, asyncresult.stdout: print out' में बाहर निकलें, जिसे आप किसी भी समय कर सकते हैं। – minrk
क्या स्रोत कोड तक पहुंच के बिना इसे प्राप्त करने का कोई तरीका है? एक पुस्तकालय है कि मैं थ्रेड में प्रिंट प्रिंट संदेशों का उपयोग कर रहा हूं, और मैं इसे प्रिंट करने के लिए प्रिंट करना चाहता हूं। क्या मुझे ऐसा करने के लिए आईपीथॉन कक्षाओं में से एक का विस्तार करना होगा? – hgcrpd