sql >> Databáze >  >> RDS >> PostgreSQL

Jak přimějete PyPy, Django a PostgreSQL ke spolupráci?

psychopg2cffi (aktualizováno v roce 2015)

psycopg2cffi je další náhrada kompatibilní s psycopg2 a měla by poskytovat nejlepší výkon PostgreSQL s PyPy. Přidejte toto do souboru settings.py aby zůstala kompatibilní s oběma:

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

psychopg2-ctypes (2012)

Také vím, že někteří lidé používají psycopg2-ctypes.

Toto je nejjednodušší způsob; Chcete-li zůstat kompatibilní s oběma, stačí přidat tento kód do vašeho Django settings.py :

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

Testoval jsem to před několika verzemi; bohužel podle mých zkušeností psycopg2-ctypes neguje malé zvýšení výkonu, které PyPy poskytuje. Ale YMMV, to záleží na tom, jak je váš kód přívětivý k JIT obecně a jaký zlomek času ve skutečnosti strávíte spuštěním kódu Python. A možná se PyPy od té doby jen zlepšil.

a nemyslím si, že psycopg2-ctypes je ještě připraven pro Windows

Nezkoušel jsem to, ale ctypes je nezávislý na platformě. AFAICT, stačí se ujistit, že libpq.dll knihovnu lze načíst (umístěnou v adresáři ve vaší proměnné prostředí PATH nebo místním adresáři) a měla by fungovat ve Windows stejně jako v Linuxu.

pypy-postgresql

Vidím, že Alex Gaynor vytvořil fork PyPy s názvem pypy-postgresql.

Nemyslím si, že je to z dlouhodobého hlediska dobrá volba. Větev nebyla aktualizována déle než rok a mé pokusy o její vybudování selhaly. A stejně se zdá špatné napevno kódovat ovladač PostgreSQL v interpretu.

Věřím, že neexistují žádné binární soubory pypy-postgresql, takže pokud jej chcete používat, musíte si celou větev PyPy vytvořit sami. Nic pro slabé povahy:trvá to desítky minut a stroj s alespoň 4 GB paměti. (Oficiální pokyny:http://pypy.org/download.html#building-from-source)

K sestavení potřebujete nejprve zdroj. Pokud máte nainstalovaný Mercurial, můžete jednoduše hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql . Pokud ne, můžete si stáhnout soubor zip s automatickým "tipem":https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip

Otevřete příkazový řádek, přejděte do dekomprimovaného adresáře a poté do pypy/translator/goal

Pokud máte nainstalovaný PyPy, je doporučeno jej použít pro stavbu:

pypy translate.py -Ojit

Jinak:

python translate.py -Ojit

Bohužel zde mé znalosti končí. Zobrazuje se mi chyba "BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG "

."

  1. Připojení softwaru IRI k Oracle

  2. Agregovat řádky v SQL příkazu Oracle

  3. Jak opravit typické chyby WordPress

  4. Pochopení systémových sloupců v PostgreSQL