Gibt es eine Möglichkeit, die Paketnamen für Python-Module zu behalten, die über dispys abhängige Funktion übertragen werden? Das würde die Verwendung von Paketen/Modulen auf die gleiche Weise ermöglichen, wenn sie mit und ohne Kontext aufgerufen werden.Python dispy - Paketnamen für Abhängigkeiten beibehalten
Einfaches Beispiel:
Modul mypackage.dispytestDepends:
def myFun():
return "Foo"
Hauptmodul, wie ich es haben möchte (funktioniert nicht):
def dependsFunTask(): #works only when called without dispy
import mypackage.dispytestDepends
ret = mypackage.dispytestDepends.myFun()
return ret
import dispy
if __name__ == '__main__':
cluster = dispy.JobCluster(dependsFunTask,depends = mypackage.dispytestDepends) # doesn't work
job = cluster.submit()
output = job()
print output ### output is None
mypackage.dependsFunTask() # works
Arbeiten, noch hässliche Version, da ich viel Code habe, der neu geschrieben werden müsste:
def dependsFunTask(): #only works when called through dispy
import dispytestDepends
ret = dispytestDepends.myFun()
return ret
import dispy
if __name__ == '__main__':
cluster = dispy.JobCluster(dependsFunTask,depends = mypackage.dispytestDepends) # works
job = cluster.submit()
output = job()
print output ### output is "Foo"
dependsFunTask() # doesn't work