psycopg2cffi (Aktualisiert 2015)
psycopg2cffi ist ein weiterer psycopg2-kompatibler Ersatz und sollte die beste PostgreSQL-Leistung mit PyPy bieten. Fügen Sie dies zu Ihrer settings.py
hinzu um mit beiden kompatibel zu bleiben:
try:
import psycopg2
except ImportError:
# Fall back to psycopg2cffi
from psycopg2cffi import compat
compat.register()
psycopg2-ctypes (2012)
Ich weiß auch, dass einige Leute psycopg2-ctypes verwenden.
Dies ist der einfachste Weg; Um mit beiden kompatibel zu bleiben, fügen Sie einfach diesen Code in Ihre Django settings.py
ein :
try:
import psycopg2
except ImportError:
# Fall back to psycopg2-ctypes
from psycopg2ct import compat
compat.register()
Ich habe dies vor ein paar Releases getestet; Leider negiert psycopg2-ctypes meiner Erfahrung nach die kleinen Leistungssteigerungen, die PyPy bietet. Aber YMMV, es hängt davon ab, wie JIT-freundlich Ihr Code im Allgemeinen ist und welchen Bruchteil der Zeit Sie tatsächlich mit der Ausführung von Python-Code verbringen. Und vielleicht hat sich PyPy seitdem einfach verbessert.
und ich glaube nicht, dass psycopg2-ctypes schon bereit für Windows ist
Ich habe das nicht ausprobiert, aber ctypes ist plattformunabhängig. AFAICT müssen Sie nur sicherstellen, dass die libpq.dll
Die Bibliothek ist ladbar (befindet sich in einem Verzeichnis in Ihrer PATH-Umgebungsvariablen oder im lokalen Verzeichnis) und sollte unter Windows genau wie unter Linux funktionieren.
pypy-postgresql
Ich sehe, dass Alex Gaynor einen Fork von PyPy namens pypy-postgresql erstellt hat.
Langfristig halte ich das für keine gute Wahl. Der Zweig wurde seit mehr als einem Jahr nicht aktualisiert und meine Versuche, ihn zu erstellen, sind gescheitert. Und es scheint sowieso falsch zu sein, einen PostgreSQL-Treiber im Interpreter fest zu codieren.
Ich glaube, es gibt auch keine Binärdateien von pypy-postgresql. Wenn Sie es also verwenden möchten, müssen Sie den gesamten PyPy-Zweig selbst erstellen. Nichts für schwache Nerven:Es dauert Dutzende von Minuten und eine Maschine mit mindestens 4 GB Speicher. (Offizielle Anleitung:http://pypy.org/download.html#building-from-source)
Zum Bauen benötigen Sie zunächst die Quelle. Wenn Sie Mercurial installiert haben, können Sie einfach hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql
. Wenn nicht, können Sie die automagische „tip“-Zip-Datei herunterladen:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip
Öffnen Sie eine Befehlszeile, gehen Sie in das dekomprimierte Verzeichnis und dann in pypy/translator/goal
Wenn Sie PyPy installiert haben, wird empfohlen, dies zum Erstellen zu verwenden:
pypy translate.py -Ojit
Ansonsten:
python translate.py -Ojit
Leider endet hier mein Wissen. Ich erhalte die Fehlermeldung „BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG
"