Solved - [egenix-users] mxODBC 3.0.2_x86_64 python 2.6 can't find libodbc

Joel Bard jbard at wyeth.com
Fri Dec 12 10:19:58 CET 2008


Thanks.  strace showed that it was looking only in the rebular /lib/ etc. locations which indicated that LD_LIBRARY_PATH was being ignored.  I'm using a python that's wrapped by the developers of some libraries that I need and they had left a LD_LIBRARY_PATH= statement in the script that starts python.

Best Regards,

Joel
 
>>> "M.-A. Lemburg" <mal at egenix.com> 12/11/08 6:09 PM >>> 
Hi Joel,

I just tried this on a x64 Linux box with the released versions and
it does work fine:

lib/python> python2.6-ucs4
Python 2.6.1 (r261:67515, Dec  5 2008, 16:16:15)
[GCC 4.2.1 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Loaded pyinteractive.py.

>>> import mx.ODBC
>>> import mx.ODBC.unixODBC
>>>
lib/python> ldd mx/ODBC/unixODBC/mxODBC.so
        libodbc.so.1 => /usr/local/unixODBC/lib/libodbc.so.1 (0x00002ac198b63000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ac198dfc000)
        libc.so.6 => /lib64/libc.so.6 (0x00002ac199017000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002ac19935d000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)

lib/python> file /usr/local/unixODBC/lib/libodbc.so.1
/usr/local/unixODBC/lib/libodbc.so.1: symbolic link to `libodbc.so.1.0.0'

lib/python> file /usr/local/unixODBC/lib/libodbc.so.1.0.0
/usr/local/unixODBC/lib/libodbc.so.1.0.0: ELF 64-bit LSB shared object, x86-64,
version 1 (SYSV), not stripped

Could you try an strace on

    python -c "import mx.ODBC.unixODBC"

to see where the OS looks for the libodbc.so.1 ?

Thanks,
-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Dec 12 2008)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
2008-12-02: Released mxODBC.Connect 1.0.0      http://python.egenix.com/

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/


On 2008-12-11 23:33, Joel Bard wrote:
> Hi-
>  
> I've been using 3.0.1 x86_64 with python 2.5 successfully for some time.  Just installed 3.0.2 with python 2.6 on the same system and it doesn't work.  In both cases libodbc.so.1 is in /d00/local/lib which is present in LD_LIBRARY_PATH
>  
> Python 2.6 (r26_cci:66714, Dec  7 2008, 16:26:22) 
> [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import mx 
>>>> import mx.ODBC
>>>> import mx.ODBC.unixODBC
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "mx/ODBC/unixODBC/__init__.py", line 8, in <module>
> ImportError: libodbc.so.1: cannot open shared object file: No such file or directory
> 
>  
> but:
>  
> Python 2.5.2 (r252_cci:60911, May 26 2008, 10:48:22) 
> [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import mx
>>>> import mx.ODBC
>>>> import mx.ODBC.unixODBC
>>>>
>  
> Thanks,
>  
> Joel
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
> _______________________________________________________________________
> eGenix.com User Mailing List                     http://www.egenix.com/
> https://www.egenix.com/mailman/listinfo/egenix-users




More information about the egenix-users mailing list