Thread: Python/Postgres Pygres for Win32 w/o cygwin

Python/Postgres Pygres for Win32 w/o cygwin

From
"SICEm, s.l."
Date:
Hi all,

The problem:    have Pygresql to use it with Python/Windows and wxPython
Syntoms: Python2.1 crashes when loading _pg.dll (renamed _pgmodule.dll)
Why? Python2.1/Win loading interfaces seems not to be the same than in
Python2.1/cygwin

Solution: Recompile pgmodule with includes and libs of Python2.1/win and
the -mno-cygwin option (MINGW).

I managed to recompile it and it works, but it behaves not the same:
1. when I run Python2.1 from interactively inside DOS-Box, after doing a
import pg, std output disappears. (Also it works, I get no output.)
2. from inside IDLE this does not happen, but when I do the following:
  >>> import pg
  >>> db=pd.DB()
  >>> q=db.query("select * from pg_database")  # or whatever
  >>> q

a) under cygwin it prints the the results of the query. type(q) returns
<type 'pgqueryobject'>
b) under IDLE/Win it prints <pg query result>. type(q) now gives also the
same: <type 'pgqueryobject'> (today, yesterday not).

It seems that Pygres buffers some standard output of libpq into the
queryobject for printing int out.

Thanx,
Erny




Re: Python/Postgres Pygres for Win32 w/o cygwin

From
Jason Tishler
Date:
Erny,

This post is really more appropriate for one of the Python mailing lists
since it has much more to do with Python extensions than with PostgreSQL.

On Thu, May 24, 2001 at 04:38:22AM +0200, SICEm, s.l. wrote:
> The problem:    have Pygresql to use it with Python/Windows and wxPython
> Syntoms: Python2.1 crashes when loading _pg.dll (renamed _pgmodule.dll)
> Why? Python2.1/Win loading interfaces seems not to be the same than in
> Python2.1/cygwin

The above is true for all Python extensions.  Ones built for Cygwin
Python will not work for Win32 Python and vice versa.  The reason is
simple: Cygwin Python extensions import from libpython2.1.dll while
Win32 extensions import from python21.dll.  Mixing and matching will
either cause the Python interpreter to fail loading the extension or
(at least in the past) cause the interpreter to crash.

> Solution: Recompile pgmodule with includes and libs of Python2.1/win and
> the -mno-cygwin option (MINGW).

The above is the easiest solution -- another (more difficult) one is to
use Microsoft Visual Studio.

> I managed to recompile it and it works, but it behaves not the same:
> [snip]

Sorry, I can't help you with the above -- maybe someone on one of the
Python lists will know the answer.

Jason

--
Jason Tishler
Director, Software Engineering       Phone: 732.264.8770 x235
Dot Hill Systems Corp.               Fax:   732.264.8798
82 Bethany Road, Suite 7             Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA                 WWW:   http://www.dothill.com