Arbeitet PyPy mit asyncio?

8

Unterstützt PyPy das aio und Python 3.5?

Ich brauche die Leistung von PyPy und asynchronen Code von asyncio . Außerdem muss ich async/await in meinem Code verwenden. Ist das möglich?

Wenn ja, was sind die Nuancen?

    
Broly 24.05.2016, 16:43
quelle

2 Antworten

12

Derzeit unterstützt PyPy Python 3.5. Beachten Sie, dass PyPys Python 3-Unterstützung momentan nur Beta-Qualität ist. Wir arbeiten kontinuierlich daran, es zu verbessern. Es ist jedoch noch nicht produktionsbereit. Der meiste Code mit asyncio sollte einfach funktionieren. Wenn nicht, überprüfen Sie die offenen Fehlerberichte oder erstelle einen neuen oder lass es mich hier in den Kommentaren wissen.

Alt, jetzt veraltet (Stand: 2017-08-18):

Derzeit unterstützt PyPy Python 3.3. Dies bedeutet, dass Sie asyncio auf PyPy3.3 installieren können. Beachten Sie, dass die Unterstützung von PyPy 3.3 derzeit nur Alpha / Beta-Qualität ist. Wir arbeiten jedoch aktiv an der Steigerung der Leistung und Kompatibilität mit CPython.

Das Feature async / await wurde in Python 3.5 hinzugefügt. Wir haben einen sehr experimentellen Zweig mit Unterstützung für Python 3.5 gestartet, aber es ist noch ein weiter Weg. Zum Glück haben wir derzeit einen GSoC-Schüler, der daran arbeitet, aber es könnte noch einige Jahre dauern (abhängig davon, wie viel Spenden und ehrenamtliche Arbeit wir erhalten).

BEARBEITEN 1: Zuvor fehlte eine Funktion, um asyncio auszuführen. Es wurde kurz vor dieser Änderung implementiert. Die Antwort wurde entsprechend bearbeitet.

EDIT 2: Wir haben gerade eine Alpha-Version von PyPy3.3 veröffentlicht. Wir empfehlen niemandem, das alte PyPy3-Release zu testen, das nur Python 3.2 unterstützt. Deshalb habe ich den Großteil der Antwort umgeschrieben.

Alt, jetzt veraltet (Stand 2016-05-30):

Die PyPy3-Version von der Website ist sehr alt und implementiert nur Python 3.2 - wir haben seit über anderthalb Jahren keine Veröffentlichung mehr gemacht. Da in Python 3.2 das Feature yield from fehlt, funktioniert asyncio nicht mit dieser Version.

    
Manuel Jacob 24.05.2016, 18:51
quelle
1

Nein. Laut der PyPy-Website ist es nur Python 3.2.5-kompatibel, während asyncio Python 3.4 benötigt (kann tatsächlich mit pip on 3.3 installiert werden, danke @dirn) ). Auch auf Asyncio Wiki wird erklärt, dass asyncio noch nicht auf PyPy funktioniert (obwohl Wiki zuletzt in. Aktualisiert wurde) August 2015).

    
Roman Tsegelskyi 24.05.2016 16:53
quelle