2016-06-30 5 views
0

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 

Antwort

Verwandte Themen