J'ai rencontré ce problème que tout littéral dict
impliqué dans ipyparallel map
est manquant et devient {}
dans le résultat de sortie.IPython-Parallel: littéral Dict manquant dans la carte parallèle
Ce problème n'a aucune incidence sur les éléments dict ajoutés via la méthode update
et les constructeurs de dict.
Pour reproduire le problème, vous pouvez faire pivoter un cluster avec un direct view
appelé, par exemple dview
. Le code ci-dessous a été testé dans IPython avec Python 3.4 (client et moteur).
dview.map(lambda x: {'label': x*2}, range(4)}
Il retournera [{}, {}, {}, {}]
, quand vous attendez la clé apparaissent label
dans le dict.
Le même problème se produit aussi bien dans les situations suivantes:
- déclaration Fonction normale
- Dict littéral utilisé comme une valeur intermédiaire (même comme argument de
update
)
Juste réalisé: Ceci est seulement reproductible en utilisant un cluster distant. Spun up 'ipcluster' sur la machine locale, cela fonctionne très bien. Même si j'exécute 'ipython' alors' rc = Client() 'sur la machine qui héberge le contrôleur, le code ci-dessus s'exécute correctement. – streamliner18