2010-08-06 12 views
38

Sto cercando una libreria di Actor facile da imparare o un framework per Python 2.x. Ho provato Candygram e Twisted ma non mi piacevano. Mi piacerebbe qualcosa che sarà facile estendere a suppero Greenlet (= python senza pila).Quale libreria/framework del modello di attore per Python ed Erlang?

  • Candygram è troppo vecchio.
  • Twisted è troppo complicato.
  • Gevent: non è chiaro se può supportare il modello di Actors.

Che cosa suggerisci?

+3

Io non so niente di Candygram, ma ho pensato che era più orientato ritorto attorno al networking rispetto alla concorrenza basata sugli attori. –

+1

I migliori attori come Erlang sono implementati in Erlang. Svolge un lavoro orientato alla concorrenza in Erlang e lascia il resto del lavoro a Python attraverso le porte. Farei tutto il lavoro in Erlang, ma se qualcuno pensa che Python sia migliore per qualsiasi compito è il suo gusto. –

+0

Conosco un po 'di Erlang, ma preferisco usare Python. Non ho bisogno della stessa cosa che faccio in Erlang in Python, e anche non nello stesso modo – daitangio

risposta

2

Questo tutorial ha un esempio semplice e funzionante per gli attori con gevent. Fondamentalmente è esattamente come Denis ha già descritto.

5

PARLEY e Pykka sono elencati in questo Wikipedia Actor Model page così si potrebbe voler esaminare uno di quelli.

Pykka sembra essere attivamente sviluppato (1.0.1 rilasciato nel dicembre 2012) mentre PARLEY non ha avuto un rilascio dal 2007 (ed è ancora elencato come beta). Pykka afferma di essere insapired da Akka solo in nome non è semplicemente una porta python.

+0

Ciò che mi confonde è che in Erlang è molto comune che gli attori si messaggino da soli. In Pykka non è chiaro in che modo un oggetto ottiene un riferimento a se stesso. – fatuhoku

+1

Non sei sicuro di come sia nuova questa funzione, ma Pykka 1.2.0 supporta self.actor_ref. Questo è esplicitamente menzionato nella sezione [Proxies] (http://www.pykka.org/en/latest/api/#proxies) dei documenti come un modo per un attore di "programmare il lavoro futuro" con se stesso, quindi io Immagina che sia fortemente supportato. – Jayson

+0

sembra che pykka non venga più sviluppato attivamente –

13

Verificare pulsar, è un framework concorrente per python che utilizza il modello di attore come origine dell'esecuzione parallela.

+0

La pulsar sembra essere mantenuta molto bene e supporta anche le funzionalità di 'asyncio' di Python3. – user1496984