Tôi đã nhìn thấy một số mô-đun postgresql cho python như pygresql, pypgsql, psyco. Hầu hết trong số họ là Python DB API 2.0 tuân thủ, một số không được phát triển tích cực nữa. Bạn đề xuất mô-đun nào? Tại sao?Mô-đun PostgreSQL Python. Tốt nhất?
Trả lời
psycopg2 có vẻ là phổ biến nhất. Tôi chưa bao giờ gặp rắc rối với nó. Trên thực tế cũng có một giao diện Python thuần túy cho PostgreSQL, được gọi là bpgsql. Tôi sẽ không khuyên bạn nên nó trên psycopg2, nhưng nó gần đây đã trở thành đủ khả năng để hỗ trợ Django và rất hữu ích nếu bạn không thể biên dịch C module.
Một tùy chọn tinh khiết-Python khác: pg8000 (http://pybrary.net/pg8000/) – bernie
Psycopg1 được biết đến với hiệu suất tốt hơn trong môi trường có nhiều luồng (như ứng dụng web) so với Psycopg2, mặc dù không được duy trì. Cả hai đều được viết tốt và đá rắn, tôi muốn chọn một trong hai tùy thuộc vào trường hợp sử dụng.
Psycopg 1 là khá lỗi thời: việc sử dụng nó hoàn toàn không được khuyến khích. – piro
Tôi đề xuất Psycopg trên Psycopg2 kể từ lần đầu tiên có vẻ có vẻ hợp lý hơn một chút. Ít nhất là trong kinh nghiệm của tôi. Tôi có một ứng dụng chạy 24/7 và đôi khi tôi đã nhận được tai nạn ngẫu nhiên bộ nhớ (đôi miễn phí hoặc lỗi tham nhũng) từ Psycopg2. Không có gì tôi có thể gỡ lỗi nhanh chóng hoặc dễ dàng vì nó không phải là lỗi Python mà là lỗi C. Tôi vừa chuyển sang Pyscopg và sau đó tôi không gặp bất kỳ sự cố nào.
Ngoài ra, như đã nói trong một bài đăng khác, bpgsql có vẻ là một lựa chọn rất tốt. Nó ổn định và dễ sử dụng vì bạn không cần phải biên dịch nó. Điều xấu nhất là thư viện không phải là chủ đề an toàn.
Pygresql có vẻ đẹp, có cách trực tiếp hơn để truy vấn cơ sở dữ liệu bằng thư viện này. Nhưng tôi không biết cái này ổn định như thế nào.
Như đã nêu trong một bình luận khác, có rất nhiều lỗi trong Psycopg 1 đã được sửa trong Psycopg 2 trong khoảng 4 năm phát triển. Vui lòng báo cáo bất kỳ lỗi nào trong danh sách gửi thư. – piro
Tôi chỉ sử dụng psycopg2 và không có vấn đề gì với điều đó.
Tôi đã sử dụng pg8000 mà không gặp bất kỳ sự cố nào trong 3 năm qua. Đó là uptodate và có sẵn trên pypi và hoạt động trên cả python2 và python3. Bạn có thể sử dụng "pip install pg8000" để nhanh chóng có được nó (đừng quên sử dụng --proxy = yourproxy: yourport nếu bạn đang đứng sau tường lửa).
Nếu bạn lo lắng về an toàn luồng, nó cũng cung cấp điểm số cho an toàn luồng (xem: http://pybrary.net/pg8000/dbapi.html và https://www.python.org/dev/peps/pep-0249/ cho các định nghĩa về mức độ an toàn luồng khác nhau) (mặc dù tôi chưa có chủ đề nào được sử dụng với psql).
Liên kết đến dự án - https://pypi.org/project/pg8000 –
Theo kinh nghiệm của tôi, psycopg2 là thư viện được sử dụng nhiều nhất cho việc này. Như bạn đã nói, đó là tuân thủ DB API 2.0, mang đến một giao diện vững chắc để làm việc.
Đối với những người tìm ra API tiêu chuẩn để được một chút quá dài dòng và khó có thể làm việc với, tôi đã thực hiện một thư viện nhỏ có thể giúp:
- 1. Thực tiễn tốt nhất cho việc môđun hóa các kịch bản lệnh kiểm tra của Selenium RC
- 2. Psycopg2, Postgresql, Python: Cách nhanh nhất để chèn hàng loạt
- 3. Python Daemon Packaging Thực tiễn tốt nhất
- 4. Thư viện GIS Python tốt nhất?
- 5. Trình điều khiển python cho postgresql
- 6. Cách tốt nhất để tìm hiểu các thủ tục được lưu trữ PostgreSQL?
- 7. Cách tốt nhất để sử dụng xếp hạng tìm kiếm văn bản đầy đủ của PostgreSQL
- 8. Python cách tốt nhất để kiểm tra khóa hiện tại
- 9. công cụ tìm kiếm tốt nhất được viết bằng python
- 10. Python - Thư viện GUI tốt nhất cho công việc?
- 11. IDE Python tốt nhất cho Mac OS X là gì?
- 12. Cách tốt nhất để mở ổ cắm bằng Python
- 13. Gói học máy tốt nhất cho Python 3x?
- 14. Đó là IDE tốt nhất cho Python Đối với Windows
- 15. Trình chỉnh sửa python tốt nhất là gì?
- 16. Python - Tìm các màu tương tự, cách tốt nhất
- 17. cách tốt nhất để tích hợp erlang và python
- 18. Khung Web Python với hỗ trợ Mongo tốt nhất
- 19. Python - Vị trí tốt nhất cho các chức năng chung
- 20. Cách tốt nhất để tích hợp Python và JavaScript?
- 21. Nén với tỷ lệ tốt nhất trong Python?
- 22. Thư viện khách hàng XMPP/Jabber python tốt nhất?
- 23. Thực tiễn tốt nhất cho ngoại lệ Python?
- 24. Thực hành tốt nhất cho các hằng số Python & Django
- 25. Python/Flask thực hành tốt nhất cho lớp dịch vụ
- 26. Cách tốt nhất để tích hợp mã Python với HTML
- 27. Nơi sử dụng năng suất bằng Python tốt nhất?
- 28. Python - Cách tốt nhất/Sạch nhất để xác định danh sách hoặc từ điển liên tục
- 29. thư viện mã hóa tốt nhất/dễ sử dụng nhất trong python
- 30. Cách tốt nhất để phân phối gói Python yêu cầu phiên bản Python tối thiểu là
[Bài viết này] (https: // wiki .postgresql.org/wiki/Python) cung cấp tổng quan về tất cả các tùy chọn và phải được cập nhật. Lưu ý cho 'Psycopg2' nói" _Trình điều khiển python phổ biến nhất, cần thiết cho hầu hết các Python + Postgres frameworks_ ". – J0ANMM
Thật vậy, @ J0ANMM. Tôi nên cập nhật các bài viết để xác nhận rằng câu trả lời tôi đã chọn (gần 10 năm trước bây giờ) vẫn được cập nhật. Cảm ơn bạn. – jmissao