আমি দুঃখিত যে আমি একটি সহজ উদাহরণ দিয়ে ত্রুটিটি পুনরুত্পাদন করতে পারি না, এবং আমার কোড পোস্ট করা খুব জটিল। আমি যদি নিয়মিত পাইথনের পরিবর্তে আইপিথন শেলটিতে প্রোগ্রামটি চালিত করি তবে জিনিসগুলি ভাল কাজ করে।
আমি এই সমস্যাটি সম্পর্কে পূর্ববর্তী কয়েকটি নোট সন্ধান করেছি। এগুলি সবই ক্লাস ফাংশনটির মধ্যে সংজ্ঞায়িত পুল কল করতে কল ব্যবহার করার কারণে ঘটেছিল। তবে আমার ক্ষেত্রে এটি হয় না।
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 313, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
আমি কোন সাহায্য কৃতজ্ঞ হবে।
আপডেট : আমি যে ফাংশনটি নিয়েছি তা মডিউলটির শীর্ষ স্তরে সংজ্ঞায়িত করা হয়েছে। যদিও এটি কোনও ফাংশনকে কল করে যা একটি নেস্টেড ফাংশন ধারণ করে। যেমন, f()
কলগুলি g()
কলগুলি h()
যার নেস্টেড ফাংশন রয়েছে i()
এবং আমি কল করছি pool.apply_async(f)
। f()
, g()
, h()
সমস্ত শীর্ষস্থানীয় পর্যায়ে সংজ্ঞায়িত করা হয়। আমি এই প্যাটার্নটির সাথে সহজ উদাহরণ চেষ্টা করেছি এবং এটি কার্যকর হয়।
dill
এবং ব্যবহারের উত্তরগুলি পড়ার জন্যpathos
। তবে, ভ্যাটকোবজেক্টসের সাথে কাজ করার সময় আমি কোনও সমাধানের ভাগ্যেই ভাগ্যবান নই :( যে কেউ সমান্তরাল প্রক্রিয়াকরণে ভিটিপিপলিডাটাতে পাইথন কোড চালাতে পেরেছেন?