काम नहीं कर रहा है मैं पाइथन 3.1.4 का उपयोग कर रहा हूं जो एक अनुप्रयोग (x64) में एक स्क्रिप्टिंग पर्यावरण के रूप में एम्बेडेड है। अब तक मुझे एम्बेडेड पायथन के साथ कई सीमाएं आई हैं। मुझे नहीं पता कि यह सामान्य है या यदि आवेदन के प्रोग्रामर ने कुछ कार्यक्षमताओं को अवरुद्ध कर दिया है।एंबेडेड पायथन: मल्टीप्रोसेसिंग
उदाहरण के लिए निम्नलिखित कोड काम नहीं कर रहा:
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
# --> error in forking.py: 'module' object has no attribute 'argv'
# print(sys.argv) gives the same error
sys.executable
वापसी आवेदन करने के लिए पथ।
मैं wel के रूप में इस की कोशिश की है:
multiprocessing.forking.set_executable('C:\Python31\python.exe')
multiprocessing.set_executable('C:\Python31\python.exe')
सफलता के बिना
।
क्या कोई कामकाज संभव है? यह बहुत ही असंभव है कि एप्लिकेशन के डेवलपर्स को अपने कोड में कुछ बदलने के लिए मुझे लाभ होगा।
धन्यवाद
संपादित
मैं इसे निम्नलिखित जोड़कर काम मिल गया:
sys.argv = ['c:/pathToScript/scipt.py']
मैं भी इस लाइन की जरूरत:
multiprocessing.set_executable('C:/Python31/python.exe')
अन्यथा कोड चलाने के बजाए एप्लिकेशन का एक अन्य उदाहरण खुला है।
एकमात्र समस्या जो मैंने छोड़ी है वह यह है कि मैं उन तरीकों का उपयोग नहीं कर सकता जो एप्लिकेशन को नियंत्रित करते हैं (जैसे: create_project(), add_report(), ..)। मेरा प्राथमिक लक्ष्य पूरा करने के लिए पहले व्यक्ति की प्रतीक्षा करने की आवश्यकता के बिना एकाधिक विधियों को कॉल करने में सक्षम होना था। लेकिन मुझे लगता है कि यह संभव नहीं है।
क्या आप वाकई मल्टीप्रोसेसिंग के बजाय थ्रेडिंग का उपयोग करने का मतलब नहीं हैं? –
कौन सा ओएस ...... ...... – NPE
@ आयनुत हूलब: मुझे थ्रेडिंग के साथ-साथ जीआईएल के साथ कुछ समस्याएं भी हैं। यही कारण है कि मैंने मल्टीप्रोसेसिंग @ एनपीई के साथ प्रयास किया: विंडोज 7, 64 बिट –