PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да накарате PyPy, Django и PostgreSQL да работят заедно?

psycopg2cffi (Актуализиран 2015 г.)

psycopg2cffi е още един psycopg2-съвместим заместител и трябва да осигури най-добрата производителност на PostgreSQL с PyPy. Добавете това към вашия settings.py за да остане съвместим и с двете:

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

psycopg2-ctypes (2012)

Знам също, че някои хора използват psycopg2-ctypes.

Това е най-лесният начин; за да останете съвместими и с двете, просто добавете този код във вашия Django settings.py :

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

Тествах това преди няколко издания; за съжаление според моя опит psycopg2-ctypes отрича малките печалби на производителност, предоставени от PyPy. Но YMMV, това зависи от това колко удобен за JIT е вашият код като цяло и каква част от времето всъщност прекарвате в изпълнение на код на Python. И може би PyPy просто се е подобрил оттогава.

и не мисля, че psycopg2-ctypes все още не е готов за Windows

Не съм пробвал това, но ctypes е независимо от платформата. AFAICT просто трябва да се уверите, че libpq.dll библиотеката може да се зарежда (намира се в директория във вашата PATH променлива на средата или локална директория) и трябва да работи в Windows точно както в Linux.

pypy-postgresql

Виждам, че Алекс Гейнър е направил разклонение на PyPy, наречено pypy-postgresql.

Не мисля, че това е добър избор в дългосрочен план. Клонът не е актуализиран повече от година и опитите ми да го изградя се провалиха. И така или иначе изглежда неправилно да се кодира твърдо PostgreSQL драйвер в интерпретатора.

Вярвам, че там също няма двоични файлове на pypy-postgresql, така че ако искате да го използвате, ще трябва сами да изградите целия клон на PyPy. Не за хора със слаби сърца:отнема десетки минути и машина с поне 4 GB памет. (Официални инструкции:http://pypy.org/download.html#building-from-source)

За да изградите, първо се нуждаете от източника. Ако имате инсталиран Mercurial, можете просто hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql . Ако не, можете да изтеглите автоматичния "tip" zip файл:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip

Отворете командния ред, отидете в декомпресираната директория и след това вътре в pypy/translator/goal

Ако имате инсталиран PyPy, препоръчително е да използвате това за изграждане:

pypy translate.py -Ojit

В противен случай:

python translate.py -Ojit

За съжаление тук свършват познанията ми. Получавам грешката „BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG "



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Алтернативи на PGTune - ClusterControl PostgreSQL конфигурация

  2. Как да ускоря броенето на редове в PostgreSQL таблица?

  3. SQL INSERT без посочване на колони. Какво става?

  4. не може да създаде разширение без роля на суперпотребител

  5. Преглед на новите съхранени процедури в PostgreSQL 11