PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để PyPy, Django và PostgreSQL hoạt động cùng nhau?

psycopg2cffi (Cập nhật năm 2015)

psycopg2cffi là một sự thay thế khác tương thích với psycopg2 và sẽ cung cấp hiệu suất PostgreSQL tốt nhất với PyPy. Thêm cái này vào settings.py của bạn để vẫn tương thích với cả hai:

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

psycopg2-ctypes (2012)

Tôi cũng biết rằng một số người đang sử dụng psycopg2-ctypes.

Đây là cách dễ dàng nhất; để tương thích với cả hai, chỉ cần thêm mã này vào Django settings.py của bạn :

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

Tôi đã thử nghiệm điều này một vài bản phát hành trước đây; Thật đáng buồn theo kinh nghiệm của tôi, psycopg2-ctypes phủ nhận những lợi ích hiệu suất nhỏ mà PyPy mang lại. Nhưng YMMV, nó phụ thuộc vào mức độ thân thiện với JIT của mã nói chung và phần thời gian bạn thực sự dành để chạy mã Python. Và có lẽ PyPy mới cải thiện kể từ đó.

và tôi chưa nghĩ rằng psycopg2-ctypes đã sẵn sàng cho Windows

Tôi chưa thử cái này, nhưng ctypes độc lập với nền tảng. AFAICT, bạn chỉ cần đảm bảo rằng libpq.dll thư viện có thể tải được (nằm trong một thư mục trong biến môi trường PATH hoặc thư mục cục bộ của bạn) và nó sẽ hoạt động trên Windows giống như trong Linux.

pypy-postgresql

Tôi thấy rằng Alex Gaynor đã tạo ra một nhánh của PyPy có tên là pypy-postgresql.

Tôi không nghĩ đây là một lựa chọn tốt về lâu dài. Chi nhánh đã không được cập nhật trong hơn một năm và nỗ lực của tôi để xây dựng nó đã thất bại. Và có vẻ như sai khi viết mã cứng một trình điều khiển PostgreSQL trong trình thông dịch.

Tôi tin rằng không có mã nhị phân nào ngoài pypy-postgresql, vì vậy nếu bạn muốn sử dụng nó, bạn cần phải tự mình xây dựng toàn bộ chi nhánh PyPy. Không dành cho người yếu tim:mất hàng chục phút và máy có bộ nhớ ít nhất 4 GB. (Hướng dẫn chính thức:http://pypy.org/download.html#building-from-source)

Để xây dựng, trước tiên bạn cần nguồn. Nếu bạn đã cài đặt Mercurial, bạn chỉ cần hg clone https://bitbucket.org/alex_gaynor/pypy-postgresql . Nếu không, bạn có thể tải xuống tệp zip "mẹo" tự động hóa:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip

Mở một dòng lệnh, đi vào thư mục đã giải nén, rồi vào bên trong pypy/translator/goal

Nếu bạn đã cài đặt PyPy, bạn nên sử dụng PyPy để xây dựng:

pypy translate.py -Ojit

Nếu không:

python translate.py -Ojit

Đáng buồn thay, đây là nơi kiến ​​thức của tôi kết thúc. Tôi gặp lỗi "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. Cách kiểm tra trạng thái của máy chủ PostgreSQL Mac OS X

  2. Làm cách nào để có được danh sách tất cả các hàm được lưu trữ trong cơ sở dữ liệu của một lược đồ cụ thể trong PostgreSQL?

  3. Chọn bản ghi đầu tiên nếu không có bản ghi nào phù hợp

  4. Cách Atanh () hoạt động trong PostgreSQL

  5. LỖI:quyền bị từ chối đối với giản đồ user1_gmail_com ở ký tự 46