psycopg2cffi (2015 년 업데이트)
psycopg2cffi 는 또 다른 psycopg2 호환 대체품이며 PyPy에서 최고의 PostgreSQL 성능을 제공해야합니다. settings.py
두 가지 모두와의 호환성을 유지 하려면 이것을 추가하십시오 .
try:
import psycopg2
except ImportError:
from psycopg2cffi import compat
compat.register()
psycopg2-ctypes (2012)
나는 또한 어떤 사람들이 psycopg2-ctypes를 사용하고 있다는 것을 알고 있습니다.
이것이 가장 쉬운 방법입니다. 둘 다 호환성을 유지하려면 Django에 settings.py
다음 코드를 추가하십시오 .
try:
import psycopg2
except ImportError:
from psycopg2ct import compat
compat.register()
나는 이것을 몇 가지 릴리스 전에 테스트했습니다. 슬프게도 내 경험상 psycopg2-ctypes는 PyPy가 제공하는 작은 성능 향상을 무효화합니다. 그러나 YMMV는 일반적으로 코드가 JIT에 얼마나 친숙하고 실제로 Python 코드를 실행하는 데 소요되는 시간에 따라 다릅니다. 그리고 아마도 PyPy는 그 이후로 개선되었을 것입니다.
psycopg2-ctypes가 아직 Windows 용으로 준비되어 있지 않다고 생각합니다.
나는 이것을 시도하지 않았지만 ctypes는 플랫폼 독립적입니다. AFAICT는 libpq.dll
라이브러리가로드 가능한지 (PATH 환경 변수 또는 로컬 디렉터리의 디렉터리에 있음) 확인해야하며 Linux에서와 마찬가지로 Windows에서 작동해야합니다.
pypy-postgresql
Alex Gaynor가 pypy-postgresql이라는 PyPy 포크를 만들었습니다.
나는 이것이 장기적으로 좋은 선택이라고 생각하지 않습니다. 브랜치가 1 년 이상 업데이트되지 않았고 구축하려는 시도가 실패했습니다. 어쨌든 인터프리터에서 PostgreSQL 드라이버를 하드 코딩하는 것은 잘못된 것 같습니다.
나는 pypy-postgresql에도 바이너리가 없다고 생각하므로 사용하려면 전체 PyPy 브랜치를 직접 빌드해야합니다. 약한 마음을위한 것이 아닙니다. 최소 4GB의 메모리를 가진 기계와 수십 분이 걸립니다. (공식 지침 : http://pypy.org/download.html#building-from-source )
빌드하려면 먼저 소스가 필요합니다. Mercurial을 설치 한 경우 간단히 hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql
. 그렇지 않은 경우 automagic "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
" 오류가 발생합니다.