Thread: pygresql build/install problems: use setup.py?
[python 2.3a1 & 2.2, postgresql 7.3.2 & 7.2.1, x86 linux] As you note from the above line, I'm wrangling multiple versions of python and postgres[ql]. I use the PyGreSQL interface from the postgres source dist. But I need to install PyGreSQL for other than the default python. I know I could hack it by hand, but it seems like there could be an optional arg to configure like: ./configure --with-python=python2.3 to specify a binary (and include files and lib install destination) other than the default. Maybe it needs a separate option: --python-include=/usr/local/include/python-2.3 I'm hoping some autoconf wiz will take this in hand -- auto* stuff scares me... I succeeded by fixing up setup.py: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --- setup.py~ Tue Mar 19 08:21:14 2002 +++ setup.py Wed May 14 15:10:30 2003 @@ -30,8 +30,8 @@ optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ] data_files = [ 'libpq.dll' ]else: - include_dirs=['/usr/include/pgsql'] - library_dirs=['usr/lib/pgsql'] + include_dirs=['../../include','../libpq','/usr/include/pgsql'] + library_dirs=['../libpq','/usr/lib/pgsql'] optional_libs=['pq'] data_files = [] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Isn't this the right thing to do? It should use the .. lib and include dirs if they exist, since these are sure to be correct, as opposed to hard coded /usr/lib/pgsql and /usr/include/pgsql which might not exist until an install has been done, and worse, might be from an older postgres version. It seems like the makefiles should just run $PYTHON setup.py build and $PYTHON setup.py install since setup.py has a much better chance of installing in the right directories, or am I missing something? -- I cannot think why the whole bed of the ocean isnot one solid mass of oysters, so prolific they seem. Ah,I am wandering!Strange how the brain controls the brain!-- Sherlock Holmes in "The Dying Detective"
george young wrote: > [...] I'm hoping some autoconf wiz will take this in hand -- auto* stuff > scares me... > > I succeeded by fixing up setup.py: > vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv > --- setup.py~ Tue Mar 19 08:21:14 2002 > +++ setup.py Wed May 14 15:10:30 2003 > @@ -30,8 +30,8 @@ > optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ] > data_files = [ 'libpq.dll' ] > else: > - include_dirs=['/usr/include/pgsql'] > - library_dirs=['usr/lib/pgsql'] > + include_dirs=['../../include','../libpq','/usr/include/pgsql'] > + library_dirs=['../libpq','/usr/lib/pgsql'] > optional_libs=['pq'] > data_files = [] > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Isn't this the right thing to do? It should use the .. lib and include > dirs if they exist, since these are sure to be correct, as opposed > to hard coded /usr/lib/pgsql and /usr/include/pgsql which might > not exist until an install has been done, and worse, might be from > an older postgres version. It's the right thing to do. And it is also what it does in the win32 case. And pyPgSQL does the same as well on win32, because it's setup.py evolved from the PyGreSQL one :-) > It seems like the makefiles should just run > $PYTHON setup.py build > and > $PYTHON setup.py install > > since setup.py has a much better chance of installing in the right > directories, or am I missing something? That's a feasible approach. But the PostgreSQL developers probably aren't very familiar with distutils. Also distutils doesn't support cross-compiling, which the auto* build process for PostgreSQL might support otherwise. -- Gerhard
george young writes: > As you note from the above line, I'm wrangling multiple versions > of python and postgres[ql]. I use the PyGreSQL interface from the > postgres source dist. But I need to install PyGreSQL for other > than the default python. I know I could hack it by hand, but it > seems like there could be an optional arg to configure like: > > ./configure --with-python=python2.3 ./configure --with-python PYTHON=python2.3 This works for any program that is detected in configure. -- Peter Eisentraut peter_e@gmx.net
I have applied the setup.py part of this patch. Thanks. --------------------------------------------------------------------------- george young wrote: > [python 2.3a1 & 2.2, postgresql 7.3.2 & 7.2.1, x86 linux] > > As you note from the above line, I'm wrangling multiple versions > of python and postgres[ql]. I use the PyGreSQL interface from the > postgres source dist. But I need to install PyGreSQL for other > than the default python. I know I could hack it by hand, but it > seems like there could be an optional arg to configure like: > > ./configure --with-python=python2.3 > > to specify a binary (and include files and lib install destination) > other than the default. Maybe it needs a separate option: > > --python-include=/usr/local/include/python-2.3 > > I'm hoping some autoconf wiz will take this in hand -- auto* stuff > scares me... > > I succeeded by fixing up setup.py: > vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv > --- setup.py~ Tue Mar 19 08:21:14 2002 > +++ setup.py Wed May 14 15:10:30 2003 > @@ -30,8 +30,8 @@ > optional_libs=[ 'libpqdll', 'wsock32', 'advapi32' ] > data_files = [ 'libpq.dll' ] > else: > - include_dirs=['/usr/include/pgsql'] > - library_dirs=['usr/lib/pgsql'] > + include_dirs=['../../include','../libpq','/usr/include/pgsql'] > + library_dirs=['../libpq','/usr/lib/pgsql'] > optional_libs=['pq'] > data_files = [] > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Isn't this the right thing to do? It should use the .. lib and include > dirs if they exist, since these are sure to be correct, as opposed > to hard coded /usr/lib/pgsql and /usr/include/pgsql which might > not exist until an install has been done, and worse, might be from > an older postgres version. > > It seems like the makefiles should just run > $PYTHON setup.py build > and > $PYTHON setup.py install > > since setup.py has a much better chance of installing in the right > directories, or am I missing something? > > -- > I cannot think why the whole bed of the ocean is > not one solid mass of oysters, so prolific they seem. Ah, > I am wandering! Strange how the brain controls the brain! > -- Sherlock Holmes in "The Dying Detective" > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faqs/FAQ.html > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073