Problem with Python module

Maneesh maneeshsingh82 at gmail.com
Tue Jan 4 05:56:25 EST 2005


Hi,
   I want to connect to a remote MS SQL Server 2000 database through
my Fedora Core 2 machine via Python scripts. I have successfully
installed freetds & unixODBC and can now connect to the desired DB
through tsql(freetds) & isql(unixODBC). I installed mxODBC (RPM &
source) to be able to connect to the DB via Python scripts without any
success.

The code(db3.py) under test is as follows:
----------------------------------------------
#!/usr/bin/python2.3

import mx.ODBC.unixODBC

dsn="ps0196"

conn=mx.ODBC.unixODBC.Connect (dsn, "maneesh_singh", "newuser")

print "Content-Type: text/plain"
print 

cursorhandle=conn.cursor()

print "MySQL Databse via mxODBC....\n"
cursorhandle.execute("select * from tb_mis_team")

for i in cursorhandle.fetchall():
    print i

print cursorhandle.fetchall()

for i in cursorhandle.fetchall():
    print i
----------------------------------------------

The output is as follows:
----------------------------------------------
[root at ps0778 cgi-bin]# python db3.py
Traceback (most recent call last):
  File "db3.py", line 4, in ?
    import mx.ODBC.unixODBC
  File "/usr/lib/python2.3/site-packages/mx/ODBC/unixODBC/__init__.py",
line 8, in ?
    from mxODBC import *
ImportError: libiodbcinst.so.2: cannot open shared object file: No
such file or directory
----------------------------------------------

Additional info:
----------------------------------------------
[root at ps0778 unixODBC]# pwd
/usr/lib/python2.3/site-packages/mx/ODBC/unixODBC
[root at ps0778 unixODBC]# ldd ./mxODBC.so
        linux-gate.so.1 =>  (0x0070b000)
        libodbc.so.1 => /usr/lib/libodbc.so.1 (0x00b26000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x007ca000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00eaa000)
        libiodbcinst.so.2 => not found
        libdl.so.2 => /lib/libdl.so.2 (0x006b2000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0089d000)
-----------------------------------------------

I want to use unixODBC and not iODBC, why is mxODBC looking for
iODBC's libraray? I had earlier tried to install iODBC,
unsuccessfully, hence shifted over to unixODBC. The missing iODBC
library exist in /usr/local/lib folder. Do I need to link the iODBC
library to mxODBC during installation? How? Configure setup.in in the
source setup?


Thanks!



Maneesh.



More information about the Python-list mailing list