[Pythonmac-SIG] Summary of installing the pyPgSQL postgresql driver
on Mac Os X
Marlon A. Griffith
marlong at rogers.com
Tue Dec 23 19:31:31 EST 2003
Goal: to make it easier for a newbie to MacPython and Postgresql to
communicate between Python and Postgresql on Mac Os X using the
pyPgSQL driver. I found that the information is available but not
compiled into one area. Hopefully, this will provide that area.
References:
1) for installing Postgresql see "Postgresql on Mac OS X" at mother
Apple, http://developer.apple.com/internet/macosx/postgres.html
2) for installing MacPython see the MacPython site,
http://homepages.cwi.nl/~jack/macpython/
3) for installing pyPgSQL see the readMe at http://pypgsql.sourceforge.net/
4) Russell E. Owen for his Mon Dec 16, 2002 and Mon, 15 Dec 2003
emails on this list
5) the MacPython documentation and faq will give you an idea of where
code is installed.
Acknowledgements: thanks Russell.
My configuration:
- X.2.8
- postgresql 7.3
- MacPython 2.3, the July 30th 2003 release.
Procedure:
- install Postgresql as in reference 1
- install MacPython as in refernce 2
- begin installing pyPgSQL as in reference 3
- unfortunately, it will not compile correctly. Quoting Russell's
solution in the Dec 16, 2002 email:
"""
One: the build process first failed with a complaint about a bad
library table of contents, and suggested running ranlib. The following
fixed that (knowing nothing about ranlib but finding the suggestion via
google):
cd /usr/local/pgsql/lib/
sudo ranlib libpq.a
At this point the build and installation went fine (though I started
with a freshly unpacked source directory, just to be on the safe side):
python setup.py build
sudo python setup.py install
"""
This worked great.
- to further test the compiled module, boot up the pythonIDE program and type,
from pyPgSQL import pgSQL
then,
dir(pgSQL)
python will now inspect the module for you.
- type,
help(dir(pgSQL))
to get detailed help on methods and parameters for pgSQL.
- when you are done playing, quit the pythonIDE program.
- start Postgresql again if necessary, reference 1
- create the pypgsql database as in reference 3
- use Russell's Dec. 15 2003 suggestion to "put /usr/local/bin before
/usr/bin in your PATH" variable since this will put the command line
MacPython before Apple's python in your unix system search path. Type
the following command,
setenv PATH "/usr/local/bin:/Library/Tcl/bin:"$PATH
- unfortunately, running the test script (reference 3):
python test/PgSQLTestCases.py
gave a password error when I ran the script as the Posgresql admin user.
- the missing component was authentication permissions for my main
user in the Postgresql pg_hba.conf file. Add this line to your
pg_hba.conf file,
#TYPE DATABASE USER IP-ADDRESS
IP-MASK METHOD
local pypgsql macUserName
trust
where
local refers to the localhost ip-address on your machine,
macUserName is your login account that you do work with or will
run MacPython from, and
trust is the authentication method. It means give this user full
access without prompting for a password. Note that you would change
this method to a password in a production environment. See
http://www.postgresql.org/docs/7.3/static/client-authentication.html.
- start Posgresql using the pypgsql database (reference 1):
psql pypgsql postgres
where "postgres" is my Posgresql admin user.
- create a user group for the database (reference 1):
pypgsql=# create group pygsql;
where "pypgsql=#" is the Posgresql prompt string for this database.
In other words, you don't type that string.
- create your testuser with no password for the database using the
same user name that you added to the pg_hba.conf file (see reference
1):
pypgsql=# create user macUserName;
- add your testuser to the group,
pypgsql=# alter group pypgsql add user macUserName;
- you can exit Posgresql if you want
- run the test script as above.
Outcome:
- I got,
"""
..................................................................----------------------------------------------------------------------
Ran 66 tests in 4.405s
OK
"""
You are now up and running. Happy Postgresql pythoning.
--
Make it a great day!
http://members.rogers.com/kalyxsis
"We move ahead by going deeper." Jennifer James (1943- ) American Writer
"Don't let your schooling interfere with your education." Mark Twain
"Do not parrot the words of famous people. Learn the meaning of what they
say and repeat it in your own words." Mark Twain (not an exact quote).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythonmac-sig/attachments/20031223/55e9f4f7/attachment-0001.html
More information about the Pythonmac-SIG
mailing list