2016-05-24 19 views
8

PyPy supporta aio e Python 3.5?PyPy funziona con asyncio?

Ho bisogno della prestazione di PyPy e del codice asincrono di asyncio. Inoltre ho bisogno di usare async/await nel mio codice. È possibile?

Se sì, quali sono le sfumature?

risposta

12

Attualmente PyPy supporta Python 3.5. Nota che il supporto Python Python 3 è solo di qualità beta al momento. Stiamo continuamente lavorando per migliorarlo. Tuttavia, non è ancora pronto per la produzione. La maggior parte del codice che coinvolge lo asyncio dovrebbe funzionare. In caso contrario, per favore check the open bug reports o create a new one o fammi sapere qui nei commenti.


Vecchio, ormai superata (come del 2017/08/18) Note:

Attualmente PyPy supporta Python 3.3. Ciò significa che è possibile install asyncio su PyPy3.3. Nota che il supporto di PyPy per il 3.3 è solo la qualità alpha/beta al momento. Stiamo comunque lavorando attivamente per aumentare le prestazioni e la compatibilità con CPython.

La funzione async/await è stata aggiunta in Python 3.5. Abbiamo avviato un ramo molto sperimentale con il supporto per Python 3.5, ma c'è ancora molta strada da fare. Fortunatamente abbiamo uno studente GSoC che ci sta lavorando al momento, ma potrebbe richiedere ancora diversi anni (dipende da quante donazioni e volontari riceviamo).

MODIFICA 1: in precedenza mancava una funzionalità per eseguire asyncio. È stato implementato poco prima di questa modifica. La risposta è stata modificata di conseguenza.

MODIFICA 2: Abbiamo appena rilasciato una versione alpha di PyPy3.3. Non consigliamo a nessuno di provare la vecchia versione PyPy3 che supporta solo Python 3.2. Questo è il motivo per cui ho riscritto la maggior parte della risposta.


Vecchio, ormai obsoleti (come del 2016/05/30) Note:

La versione PyPy3 dal sito web è molto vecchio e implementa solo Python 3.2 - non abbiamo fatto un rilascio per oltre un anno e mezzo. Poiché in Python 3.2 manca la funzione yield from, asyncio non funzionerà con questa versione.

+0

A quanto pare ora c'è PyPy3.5? –

+0

Bene, PyPy3.5 non è ancora completo o pronto per la produzione. Ma nell'ultimo anno ci siamo concentrati principalmente su PyPy3.5, quindi dovrei aggiornare la mia risposta. –

1

No. Secondo PyPy website è solo conforme a Python 3.2.5, mentre asyncio richiede Python 3.4 (in realtà può essere installato utilizzando pip su 3.3, grazie a @dirn). Sempre su Asyncio Wiki, si afferma che asyncio non funziona ancora su PyPy (anche se Wiki è stato aggiornato l'ultima volta ad agosto 2015).

+0

asyncio è stato aggiunto allo stdlib in 3.4 e può essere installato tramite pip su 3.3. Tuttavia, ciò non influisce sulla risposta a PyPy. – dirn

+0

Grazie, ho aggiornato la risposta –

+1

questo tizio dice diversamente http://stackoverflow.com/questions/8960747/stackless-in-pypy-and-pypy-greenlet-differences – Ale