plpythonu under OS X 10.4 -- a brief HOWTO
От | Philip Semanchuk |
---|---|
Тема | plpythonu under OS X 10.4 -- a brief HOWTO |
Дата | |
Msg-id | BF8A55F4-BB82-458B-A3BB-C708171DEBA6@semanchuk.com обсуждение исходный текст |
Список | pgsql-general |
Hi all, I just got plpythonu working under OS X, and I'm posting my HOWTO notes here in case I (or anyone else) needs them. The install was pretty straightforward for me once I'd Googled the proper magic commands. I'm on OS X Tiger (10.4.10) which comes with Python 2.3 installed by default. I wanted to have Python 2.5 available, so my first step was to download and build that. One must build Python with the "--enabled-shared" flag in order to be able to use plpythonu, and I don't know if the stock OS X install of Python has that flag. So even if you're satisfied with the stock Python install version, you might need to build a new version anyway. Here's how I made Python: export MACOSX_DEPLOYMENT_TARGET=10.4 ./configure --enable-shared --enable-framework make sudo make frameworkinstall That installed into /Library/Frameworks/Python.framework/Versions/ 2.5. (Note that OS X's python lives in /System/Library/Frameworks/ Python.framework/Versions/2.3, so the 2.5 install lives alongside of the system install rather than replacing it. This is good -- OS X uses Python and you don't want to monkey around with something on which OS X relies.) The installer helpfully symlinked /usr/local/bin/ python to /Library/Frameworks/Python.framework/Versions/2.5/bin/ python, so putting /usr/local/bin in my path before /usr/bin ensures that I invoke Python 2.5 automatically. After that, I rebuilt postgres (I'm using 8.1.4 and building from / usr/local/src) with the following commands. I don't know if the "-- with-includes" and "--with-libraries" options are necessary for plpythonu, but I needed them to get readline support in psql. The 'make clean' step was necessary for me to resolve a linker error. ./configure --with-includes=/usr/local/include --with-libraries=/usr/ local/lib --with-python --enable-nls='en' sudo make clean sudo make install I didn't back up my data or config files before reinstalling and do not appear to have lost anything. YMMV. You should now have plpythonu available as a language in Postgres. In order to make it available in database my_stuff, start psql as superuser and execute these commands: \c my_stuff CREATE LANGUAGE plpythonu; Since plpythonu is an untrusted language (that's what the 'u' on the end stands for), only superusers can create functions in that language. So as superuser you can create a function like so: CREATE OR REPLACE FUNCTION show_python_version() RETURNS TEXT AS $$ import sys return sys.version $$ LANGUAGE plpythonu; Then invoke psql as a normal user and try out your function: > select * from show_python_version(); show_python_version -------------------------------------------- 2.5.1 (r251:54863, Nov 17 2007, 21:19:53) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] (1 row) That's all! Enjoy Philip Semanchuk first name @ last name.com
В списке pgsql-general по дате отправления: