psycopg2cffi (Diperbarui 2015)
psycopg2cffi adalah pengganti lain yang kompatibel dengan psycopg2 dan harus memberikan kinerja PostgreSQL terbaik dengan PyPy. Tambahkan ini ke settings.py
. Anda agar tetap kompatibel dengan keduanya:
try:
import psycopg2
except ImportError:
# Fall back to psycopg2cffi
from psycopg2cffi import compat
compat.register()
psycopg2-ctypes (2012)
Saya juga tahu bahwa beberapa orang menggunakan psycopg2-ctypes.
Ini adalah cara termudah; untuk tetap kompatibel dengan keduanya, cukup tambahkan kode ini di settings.py
Django Anda :
try:
import psycopg2
except ImportError:
# Fall back to psycopg2-ctypes
from psycopg2ct import compat
compat.register()
Saya menguji ini beberapa rilis yang lalu; sayangnya dalam pengalaman saya, psycopg2-ctypes meniadakan keuntungan kinerja kecil yang diberikan oleh PyPy. Tapi YMMV, itu tergantung pada seberapa ramah JIT kode Anda secara umum dan berapa banyak waktu yang Anda habiskan untuk menjalankan kode Python. Dan mungkin PyPy baru saja meningkat sejak saat itu.
dan menurut saya psycopg2-ctypes belum siap untuk Windows
Saya belum mencoba ini, tetapi ctypes tidak bergantung pada platform. AFAICT Anda hanya perlu memastikan bahwa libpq.dll
library dapat dimuat (terletak di direktori di variabel lingkungan PATH atau direktori lokal Anda) dan harus berfungsi di Windows seperti di Linux.
pypy-postgresql
Saya melihat bahwa Alex Gaynor telah membuat garpu PyPy yang disebut pypy-postgresql.
Saya tidak berpikir ini adalah pilihan yang baik dalam jangka panjang. Cabang belum diperbarui selama lebih dari setahun dan upaya saya untuk membangunnya gagal. Dan tampaknya salah mengkodekan driver PostgreSQL di penerjemah.
Saya percaya tidak ada binari di luar sana dari pypy-postgresql, jadi jika Anda ingin menggunakannya, Anda harus membangun sendiri seluruh cabang PyPy. Bukan untuk yang lemah hati:dibutuhkan puluhan menit dan mesin dengan memori minimal 4 GB. (Petunjuk resmi:http://pypy.org/download.html#building-from-source)
Untuk membangun, Anda membutuhkan sumbernya terlebih dahulu. Jika Anda telah menginstal Mercurial, Anda cukup hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql
. Jika tidak, Anda dapat mengunduh file zip "tip" otomatis:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip
Buka baris perintah, masuk ke direktori yang didekompresi, lalu di dalam pypy/translator/goal
Jika Anda telah menginstal PyPy, disarankan untuk menggunakannya untuk membangun:
pypy translate.py -Ojit
Jika tidak:
python translate.py -Ojit
Sayangnya di sinilah pengetahuan saya berakhir. Saya mendapatkan kesalahan "BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG
"