Nasıl PyPy, Django, PostgreSQL ve birlikte çalışmaya başlayalım mı?
Ne çatalı ya da Birleşik paketlerinden birini PyPy, Django, PostgreSQL oyun birlikte daha iyi hale getirmek için kullanmak gerekir?
PyPy ve Django iyi bir oyun biliyorum, ama PyPy ve PostgreSQL hakkında daha az eminim. Alex Gaynor PyPy pypy-postgresql denilen bir çatal yapılmış olduğunu görüyorum. Ben de bazı insanların psycopg2-ctypes kullanarak.
Bu çatalları arasında bir fark var mı? Ya biz istikrarlı 1.9 PyPy kullanın ve psycopg2-ctypes kullanmalı? Ctypes kullanarak seçenekleri performans zarar aşağıdaki yorum görebiliyordu.
Herkes pyscopg2 ile PyPy kullanarak herhangi bir tuzaklar yaşanmıştır. Çok kolay eğer bir şey doğru çalışmıyor. eğer CPython geri düşmek gibi görünüyor, ama daha çok bir programcı vaktinden hazırlamak için yapabileceğiniz şeyler arıyorum.
Etrafında, doğal PyPy ile psycopg2 çalışıyor görünmüyor baktım. , Psycopg2-ctypes bazı insanlar için çalışıyor gibi görünüyor olsa da, pypy-dev bir tartışma vardı. Windows üzerinde çalışıyorum, ve psycopg2-ctypes Windows için henüz, ne yazık ki hazır olduğunu sanmıyorum.
CEVAP
psycopg2cffi (2015 Güncelleme)
psycopg2cffi henüz psycopg2-uyumlu bir yedek ve PyPy ile PostgreSQL en iyi performansı sağlamalıdır. Her ikisi ile uyumlu kalması için ** 4 senin için bu ekleyin:
try:
import psycopg2
except ImportError:
# Fall back to psycopg2cffi
from psycopg2cffi import compat
compat.register()
psycopg2-ctypes (2012)
Ben de bazı insanlar psycopg2-ctypes kullanıyor.
Bunun en kolay yolu; her iki ile uyumlu kalmak, sadece Django settings.py
bu kodu ekleyin:
try:
import psycopg2
except ImportError:
# Fall back to psycopg2-ctypes
from psycopg2ct import compat
compat.register()
Bu birkaç sürümleri önce test ettim; ne yazık ki benim durumumda, psycopg2-ctypes olumsuzlar küçük performans artışı sağladığı PyPy. Ama YMMV, JİT dostu kodunuzu genel olarak nasıl ve aslında Python kodu kaçarak bağlıdır. Ve belki PyPy sadece o zamandan bu yana iyileşmiştir.
ve psycopg2-ctypes Windows için tam olarak hazır olduğunu düşünmüyorum
Bu hiç denemedim, ama ctypes platform-bağımsızdır. AFAİCT sadece libpq.dll
kütüphane yüklenebilir olduğundan emin olun (PATH ortam değişkeni bir dizin ya da yerel bir dizinde yer alan ve sadece Linux Windows üzerinde çalışması gerekir.
pypy-postgresql
Alex Gaynor PyPy pypy-postgresql denilen bir çatal yapılmış olduğunu görüyorum.
Bu uzun vadede iyi bir seçim olduğunu düşünmüyorum. Şube fazla bir yıl için güncellenmiş değil onu inşa etmek için girişimleri başarısız oldu. Ve yanlış sabit-kod yorumlayıcı PostgreSQL sürücüsü zaten görünüyor.
Ya pypy-postgresql orada ikili yok sanırım, eğer bunu kullanmak istiyorsanız, tüm PyPy şube kendiniz inşa etmek zorunda kaldınız. Kalbi zayıf olanlara göre değil: on dakika ve bellek en az 4 GB olan bir makine alır. (Resmi talimatları: http://pypy.org/download.html#building-from-source)
İnşa etmek, ilk kaynak lazım. Eğer Mercurial yüklü varsa, sadece 9**. Yok, o sihirli "" zip dosyası: https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip . ipucu indirebilirsiniz eğer
Bir komut satırı açın, sıkıştırılmış dizine gidin ve sonra pypy/translator/goal
içinde
Eğer yüklü PyPy varsa, bina için kullanılması tavsiye edilir:
pypy translate.py -Ojit
Aksi takdirde:
python translate.py -Ojit
Ne yazık ki bu benim bilgim burada sona eriyor. Hata alıyorum "BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG
"
Nasıl Django içinde PostgreSQL Veritab...
Nasıl PostgreSQL komut satırı yardımcı...
Nasıl düzgün Excel, birlikte çalışabil...
Django hata ayıklama nasıl, iyi mi?...
Django nasıl bir görünüm içinde 2 ya d...