SORU
19 ŞUBAT 2012, Pazar


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
30 HAZİRAN 2012, CUMARTESİ


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"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bashirsultani

    bashirsultan

    22 Mart 2010
  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • ShoSho

    ShoSho

    20 Ocak 2010