irgendwie werde ich nicht grün mit der ganzen multiprocessing Problematik.
Also ich habe folgenden Aufbau:
Die Dateien liegen beide im selben Ordner.
Code: Alles auswählen
from TEM import calc_f_tinf
from numpy import zeros
from sympy import mpmath as mp
from multiprocessing import Pool
lsg = []
def callback_func(x):
lsg.append(x)
def main():
cores = 3
#phys. Params
mp.mp.dps = 30
E1c=mp.mpf('0.1')
E2c=mp.mpf('0.05')
#usw die anderen variablen werden hier auch noch definiert
pool = Pool(cores)
p_par = mp.mp.zero
p_perp_arr = mp.linspace(mp.mp.zero,mp.mp.one,cores)
for i in p_perp_arr:
print('test')
p_perp = i
pool.apply_async(calc_f_tinf,args=(zeros,mp.mp,E1c,E2c,X,N,Ton,Tflat,p_perp,p_par,degree,tol,max_radius),callback=callback_func)
pool.close()
pool.join()
print(sorted(lsg))
if __name__ == '__main__':
main()
Code: Alles auswählen
def hilfsfkt():
return hilfe
def calc_f_tinf(zeros,ctx,E1c,E2c,X,N,Ton,Tflat,p_perp,p_par,degree,tol,max_radius):
#code code
hilfsfkt() #soll heißen hier wird nochmal eine funktion aus der datei genutzen ich könnte mir das als mögliches Problem vorstellen
#code code
return [p_perp,p_par,ctx.fsub(ctx.one,erg[0,0],exact=True)]
ist und gar kein Fehler kommt, wenn ich jedoch IPython nutze kommt zwar die selbe ausgabe aber im Kernel kommt noch folgender Traceback:test
test
test
[]
Und das dreimal direkt quasi einmal für jeden Kern, nur verstehe ich das gar nicht, da bei der funktion calc_f_tinf welche beim multiprocessing aufgerufen werden soll gar nix mehr importiert werden soll. Und wenn ich das mit dem Pool weglasse und sonst alles wie oben lasse, nur die funktion calc_f_tinf direkt aufrufe mit allen Parametern dann funktioniert es, was mir eigentlich sagt das es ja TEM doch findet.Traceback (most recent call last):
File "<string>", line 1, in <module>
File "F:\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main
exitcode = _main(fd)
File "F:\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main
prepare(preparation_data)
File "F:\Anaconda3\lib\multiprocessing\spawn.py", line 226, in prepare
_fixup_main_from_path(data['init_main_from_path'])
File "F:\Anaconda3\lib\multiprocessing\spawn.py", line 278, in _fixup_main_from_path
run_name="__mp_main__")
File "F:\Anaconda3\lib\runpy.py", line 240, in run_path
pkg_name=pkg_name, script_name=fname)
File "F:\Anaconda3\lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "F:\Anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "F:\geheim_pfad_;)\calc_multi.py", line 3, in <module>
from TEM import calc_f_tinf
ImportError: No module named 'TEM'