sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur får man PyPy, Django och PostgreSQL att fungera tillsammans?

psycopg2cffi (Uppdaterad 2015)

psycopg2cffi är ännu en psycopg2-kompatibel ersättare och bör ge den bästa PostgreSQL-prestandan med PyPy. Lägg till detta i din settings.py för att förbli kompatibel med båda:

try:
    import psycopg2
except ImportError:
    # Fall back to psycopg2cffi
    from psycopg2cffi import compat
    compat.register()

psycopg2-ctypes (2012)

Jag vet också att vissa människor använder psycopg2-ctypes.

Detta är det enklaste sättet; för att förbli kompatibel med båda, lägg bara till den här koden i din Django settings.py :

try:
    import psycopg2
except ImportError:
    # Fall back to psycopg2-ctypes
    from psycopg2ct import compat
    compat.register()

Jag testade detta för några släpp sedan; Tyvärr, enligt min erfarenhet, förnekar psycopg2-ctypes de små prestandavinsterna som PyPy ger. Men YMMV, det beror på hur JIT-vänlig din kod är i allmänhet och hur stor del av tiden du faktiskt spenderar på att köra Python-kod. Och kanske PyPy bara har förbättrats sedan dess.

och jag tror inte psycopg2-ctypes är redo för Windows än

Jag har inte provat detta, men ctypes är plattformsoberoende. AFAICT måste du bara se till att libpq.dll biblioteket är laddningsbart (finns i en katalog i din PATH-miljövariabel eller lokala katalog) och det bör fungera på Windows precis som i Linux.

pypy-postgresql

Jag ser att Alex Gaynor har gjort en gaffel av PyPy som heter pypy-postgresql.

Jag tror inte att det här är ett bra val på lång sikt. Filialen har inte uppdaterats på mer än ett år och mina försök att bygga den har misslyckats. Och det verkar fel att hårdkoda en PostgreSQL-drivrutin i tolken ändå.

Jag tror att det inte finns några binärer där ute av pypy-postgresql heller, så om du vill använda det måste du bygga hela PyPy-grenen själv. Inte för svaga hjärtan:det tar tiotals minuter och en maskin med minst 4 GB minne. (Officiella instruktioner:http://pypy.org/download.html#building-from-source)

För att bygga behöver du först källan. Om du har Mercurial installerat kan du helt enkelt hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql . Om inte kan du ladda ner den automagiska "tip" zip-filen:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip

Öppna en kommandorad, gå in i den dekomprimerade katalogen och sedan in i pypy/translator/goal

Om du har PyPy installerat, rekommenderas det att du använder det för att bygga:

pypy translate.py -Ojit

Annars:

python translate.py -Ojit

Tyvärr är det här min kunskap slutar. Jag får felet "BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG "



  1. Hur SEC_TO_TIME() fungerar i MariaDB

  2. Hur man multiplicerar två kolumner i SQL

  3. MySQL – Olika metoder för att känna till nuvarande användare

  4. NYHETER:Ny Microsoft SQL Server Native Client 18 släppt!