psycopg2cffi (aktualisiert 2015)
psycopg2cffi ist ein weiterer psycopg2-kompatibler Ersatz und sollte mit PyPy die beste PostgreSQL-Leistung bieten. Fügen Sie dies zu Ihrem hinzu settings.py
, 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-c-Typen verwenden.
Dies ist der einfachste Weg; Um mit beiden kompatibel zu bleiben, fügen Sie einfach diesen Code in Ihren Django ein settings.py
:
try:
import psycopg2
except ImportError:
# Fall back to psycopg2-ctypes
from psycopg2ct import compat
compat.register()
Ich habe das vor ein paar Releases getestet. Leider negiert psycopg2-ctypes meiner Erfahrung nach die geringen Leistungssteigerungen, die PyPy bietet. Aber YMMV, es hängt davon ab, wie JIT-freundlich Ihr Code im Allgemeinen ist und wie viel Zeit Sie tatsächlich damit verbringen, Python-Code auszuführen. Und vielleicht hat sich PyPy seitdem gerade verbessert.
und ich glaube nicht, dass psycopg2-ctypes noch für Windows bereit ist
Ich habe das nicht ausprobiert, aber ctypes ist plattformunabhängig. AFAICT Sie müssen nur sicherstellen, dass die libpq.dll
Bibliothek ladbar ist (sich in einem Verzeichnis in Ihrer PATH-Umgebungsvariablen oder in einem lokalen Verzeichnis befindet) und unter Windows genau wie unter Linux funktionieren sollte.
pypy-postgresql
Ich sehe, dass Alex Gaynor eine Gabel aus PyPy namens pypy-postgresql hergestellt hat.
Ich denke nicht, dass dies auf lange Sicht eine gute Wahl ist. Der Zweig wurde seit mehr als einem Jahr nicht mehr aktualisiert und meine Versuche, ihn zu erstellen, sind fehlgeschlagen. Und es scheint sowieso falsch, 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 mehrere zehn Minuten und eine Maschine mit mindestens 4 GB Arbeitsspeicher. (Offizielle Anweisungen: http://pypy.org/download.html#building-from-source )
Zum Erstellen benötigen Sie zunächst die Quelle. Wenn Sie Mercurial installiert haben, können Sie dies einfach tun hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql
. Wenn nicht, können Sie die automatische ZIP-Datei "tip" herunterladen: https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip
Öffnen Sie eine Befehlszeile, gehen Sie in das dekomprimierte Verzeichnis und dann hinein pypy/translator/goal
Wenn Sie PyPy installiert haben, wird empfohlen, dies zum Erstellen zu verwenden:
pypy translate.py -Ojit
Andernfalls:
python translate.py -Ojit
Leider endet hier mein Wissen. Ich bekomme den Fehler " BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG
"