質問するログイン新規登録

質問編集履歴

2

再現コードを追記しました

2020/05/05 07:37

投稿

m_osa
m_osa

スコア4

title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,57 @@
40
40
  list1 = pool.starmap(dynMod.ParaProc, multi_args)
41
41
 
42
42
  ```
43
+ ```ここに言語を入力
44
+ ■再現コード
45
+ import types
46
+ import sys
43
47
 
48
+
49
+ def dynamicModule(Param):
50
+
51
+ spam_module = types.ModuleType('spam', 'dynamic generated module')
52
+ spam_class = """
53
+ def calculation(Num1, Num2):
54
+
55
+ # 計算式
56
+ result = """ + Param + """
57
+
58
+ return result
59
+
60
+ if __name__ == "__main__":
61
+
62
+ calculation(1, 2)
63
+
64
+ """
65
+ exec(spam_class, spam_module.__dict__)
66
+ sys.modules['spam'] = spam_module
67
+
68
+ return spam_module
69
+
70
+
71
+ if __name__ == "__main__":
72
+
73
+ from multiprocessing import Pool
74
+
75
+ Param = 'Num1 * Num2'
76
+
77
+ # DynamicModule生成
78
+ dynamicModule(Param)
79
+
80
+ # DynamicModuleインポート
81
+ import spam
82
+
83
+ # 並列処理数
84
+ pool = Pool(3)
85
+
86
+ # インプットパラメータ
87
+ multi_args = ([2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [2, 7])
88
+
89
+ # 並列処理
90
+ list_result = pool.starmap(spam.calculation, multi_args)
91
+
92
+ ```
93
+
44
94
  ### 試したこと
45
95
 
46
96
  ・並列処理ではなく、実行すれば正常終了

1

試したことを追記

2020/05/05 07:37

投稿

m_osa
m_osa

スコア4

title CHANGED
File without changes
body CHANGED
@@ -43,6 +43,7 @@
43
43
 
44
44
  ### 試したこと
45
45
 
46
+ ・並列処理ではなく、実行すれば正常終了
46
47
  ・import dynModをDynamicModule()で生成するロジックに差し込んだが、同様のエラーが発生
47
48
  ・DynamicModule()で生成するロジックでrunpyをインポートし、再度dynModモジュールを読み込ませようとしたが、同様のエラーが発生
48
49