sql >> Database >  >> RDS >> PostgreSQL

Hoe laat je PyPy, Django en PostgreSQL samenwerken?

psycopg2cffi (bijgewerkt 2015)

psycopg2cffi is nog een andere psycopg2-compatibele vervanging en zou de beste PostgreSQL-prestaties moeten bieden met PyPy. Voeg dit toe aan uw settings.py om compatibel te blijven met beide:

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

psycopg2-ctypes (2012)

Ik weet ook dat sommige mensen psycopg2-ctypes gebruiken.

Dit is de gemakkelijkste manier; om compatibel te blijven met beide, voeg je deze code toe aan je Django settings.py :

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

Ik heb dit een paar releases geleden getest; helaas doet psycopg2-ctypes in mijn ervaring de kleine prestatieverbeteringen van PyPy teniet. Maar YMMV, het hangt af van hoe JIT-vriendelijk uw code in het algemeen is en hoeveel tijd u daadwerkelijk besteedt aan het uitvoeren van Python-code. En misschien is PyPy sindsdien alleen maar verbeterd.

en ik denk dat psycopg2-ctypes nog niet klaar is voor Windows

Ik heb dit niet geprobeerd, maar ctypes is platformonafhankelijk. AFAICT je moet er alleen voor zorgen dat de libpq.dll bibliotheek is laadbaar (bevindt zich in een map in uw PATH-omgevingsvariabele of lokale map) en het zou op Windows moeten werken, net als in Linux.

pypy-postgresql

Ik zie wel dat Alex Gaynor een fork van PyPy heeft gemaakt met de naam pypy-postgresql.

Ik denk dat dit op de lange termijn geen goede keuze is. Het filiaal is al meer dan een jaar niet bijgewerkt en mijn pogingen om het te bouwen zijn mislukt. En het lijkt sowieso verkeerd om een ​​PostgreSQL-stuurprogramma hard te coderen in de tolk.

Ik geloof dat er ook geen binaire bestanden zijn van pypy-postgresql, dus als je het wilt gebruiken, moet je de hele PyPy-tak zelf bouwen. Niet voor bangeriken:het duurt tientallen minuten en een machine met minimaal 4 GB geheugen. (Officiële instructies:http://pypy.org/download.html#building-from-source)

Om te bouwen heb je eerst de source nodig. Als je Mercurial hebt geïnstalleerd, kun je eenvoudig hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql . Zo niet, dan kunt u het automagische "tip" zipbestand downloaden:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip

Open een opdrachtregel, ga naar de gedecomprimeerde map en ga naar pypy/translator/goal

Als je PyPy hebt geïnstalleerd, is het aanbevolen om dat te gebruiken voor het bouwen:

pypy translate.py -Ojit

Anders:

python translate.py -Ojit

Helaas houdt hier mijn kennis op. Ik krijg de foutmelding "BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG "



  1. Hoe maak je verbinding met een LDAP-server via node-oracledb?

  2. Hoe de som van meerdere kolommen in een tabel in SQL Server 2005 te vinden?

  3. ScaleGrid nu beschikbaar in de Sydney AWS-regio

  4. Maak verbinding met een MySQL-server via SSH in PHP