From: | Kevin Ar18 <kevinar18(at)hotmail(dot)com> |
---|---|
To: | <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Confusion over Python drivers |
Date: | 2010-02-07 03:46:55 |
Message-ID: | SNT110-W19B857B0F06D828BBC0DA6AA520@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I saw this on reddit and thought I might drop a line.
I went through this same issue, trying to find a postgresql driver. Mostly, I had no intention of using psycopg because of its copyleft licensing. (Of course, I don't need to go into why.)
Anyways, here's some info that might help on three alternatives:
Py-postgresql, PyGreSQL, and PG3000
Py-postgresql is active (but I only see 1 person committing)
MIT/BSD style license
It uses some some C for speed.
It has DB-API and PG-API bindings.
Problem: is it Python 3 only!
PyGreSQL (looking to not be very active in the last few months)
MIT/BSD style license
I'm vague on it's features, whether it has C optimizations, or if it is a version limited to Python 3 or 2.x
PG8000 is active at the moment
MIT/BSD style license
It works on 2.x and Python 3
Problem: it is pure Python, so it is slower
If you plan on pursuing this, I'd recommend talking to people on on 3 projects. Here's what I would describe as ideal in a project:
* MIT/BSD style license
* works on Python 2.x and 3
* C optimizations for speed (or whatever for speed)
------------------
That's that part. Now for some problems that would need solving in order for the db api to be extremely useful/userfriendly in the Python world:
------------------
* SQLAlchemy bindings/support -- as of right now only psycopyg works in
SQLAlchemy without problems. PG8000 will work, but you need an
experimental version of boht PG8000 and SQLAlchemy. The other two do
not work. SQLAlchemy support is probably most needed of anything. SQLAlchemy support should not only be possible but default.
* Django bindings (these are unique to Django and nobody but psycopg has
them, which is not good). Django support should not only be possible but default.
* Needs 2.x and Python 3 compatability
* It is inevitable that if the library uses C optimizations, then that means they need to provide lots of different binaries -- think 32bit vs 64bit and then 2.4, 2.5, 3.0 etc.... Some combinations will often be left out making it hard for someone to use/install it.
Of course all of this is from the perspective of Python users. Of course, you have your own features that you want from your end (from PostgreSQL's perspective). Perhaps this info would help you to know which avenue to pursue.
_________________________________________________________________
Your E-mail and More On-the-Go. Get Windows Live Hotmail Free.
http://clk.atdmt.com/GBL/go/201469229/direct/01/
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2010-02-07 04:06:16 | Re: Confusion over Python drivers |
Previous Message | Robert Haas | 2010-02-07 02:11:01 | Re: Confusion over Python drivers |