Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Informix、pyodbc、Centos_Python_Centos_Informix_Pyodbc - Fatal编程技术网

Python Informix、pyodbc、Centos

Python Informix、pyodbc、Centos,python,centos,informix,pyodbc,Python,Centos,Informix,Pyodbc,我正试图通过Informix连接我的工作数据库以创建脚本,但我在连接中遇到了问题 错误是: Traceback (most recent call last): File "./Test1.py", line 11, in <module> con = pyodbc.connect(constr, autocommit=False) pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open

我正试图通过Informix连接我的工作数据库以创建脚本,但我在连接中遇到了问题

错误是:

 Traceback (most recent call last):
  File "./Test1.py", line 11, in <module>
    con = pyodbc.connect(constr, autocommit=False)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/IBM/informix/lib/cli/iclit09b.so' : file not found (0) (SQLDriverConnectW)")
和my/etc/odbcinst.ini

[cms]
Description           = MySQL connection to 'Kkapd' database
Driver                = MySQL
Database              = cms
Server                = 10.177.3.100
Port                  = 50005
Socket                = /var/lib/mysql/mysql.sock

[Informix]
Description           =Informix Driver
Driver                =/opt/IBM/informix/lib/cli/iclit09b.so
APILevel              =1
ConnectFunctions      =YYY
DriverODBCVer         =03.00
FileUsage             =0
SQLLevel              =1
smProcessPerConnect   =Y
和my/etc/odbc.ini

[cms]
Description           = MySQL connection to 'Kkapd' database
Driver                = MySQL
Database              = cms
Server                = 10.177.3.100
Port                  = 50005
Socket                = /var/lib/mysql/mysql.sock

[Informix]
Description           =Informix Driver
Driver                =/opt/IBM/informix/lib/cli/iclit09b.so
APILevel              =1
ConnectFunctions      =YYY
DriverODBCVer         =03.00
FileUsage             =0
SQLLevel              =1
smProcessPerConnect   =Y
如何修复此问题以便正确连接

我更新了路径,所以我用ldd检查了,但问题是我得到了文件,但仍然是相同的错误:

[informix@localhost scripts]$ ldd /opt/IBM/informix/lib/cli/iclis09b.so
        linux-gate.so.1 =>  (0xf7786000)
        libifgls.so => /opt/IBM/informix/lib/esql/libifgls.so (0xf75c1000)
        libifglx.so => /opt/IBM/informix/lib/esql/libifglx.so (0xf75bf000)
        libc.so.6 => /lib/libc.so.6 (0xf73f8000)
        libm.so.6 => /lib/libm.so.6 (0xf73b4000)
        libdl.so.2 => /lib/libdl.so.2 (0xf73af000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xf737f000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7364000)
        /lib/ld-linux.so.2 (0xf7787000)
        libfreebl3.so => /lib/libfreebl3.so (0xf7360000)
在安装Informix文件时,我实际上更改了
/etc/ld.so.conf

include ld.so.conf.d/*.conf
/home/informix/lib/cli
/home/informix/lib/esql
/home/informix/lib
export INFORMIXDIR=/home/informix
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export TERMCAP=$INFORMIXDIR/etc/termcap
export TERM=vt100
export DBDATE=DMY4/
export DBCENTURY=C
export DBEDIT=nano
export VISUAL=nano
export INFORMIXSERVER=cms_net
export ONCONFIG=onconfig.cms
export INFORMIXSQLHOSTS=/home/informix/etc/sqlhosts
export ODBCINI=/etc/odbc.ini

最后我可以解决这个问题,错误是我在Informix上有一个旧版本,所以我重新安装了另一个版本,这样我的驱动程序就可以工作了,所以也许这可以帮助别人

看起来您需要设置
LD\u LIBRARY\u PATH
或配置
/etc/LD.so.conf
,以便
/opt/IBM/informix/lib
/opt/IBM/informix/lib/esql
自动搜索共享库,这样也可以找到
libifgls.so
libifglx.so
。使用
ldd
是发现未找到内容的一种好方法。更改配置后,您可以使用
ldd
再次检查。您是如何设置
LD\u LIBRARY\u路径的,还是更改了
/etc/LD.so.conf
?“我不知道是否提供了任何见解。@乔纳森·利弗勒我添加了一份我的文件副本,我认为它是正确的
include ld.so.conf.d/*.conf
/home/informix/lib/cli
/home/informix/lib/esql
/home/informix/lib
export INFORMIXDIR=/home/informix
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export TERMCAP=$INFORMIXDIR/etc/termcap
export TERM=vt100
export DBDATE=DMY4/
export DBCENTURY=C
export DBEDIT=nano
export VISUAL=nano
export INFORMIXSERVER=cms_net
export ONCONFIG=onconfig.cms
export INFORMIXSQLHOSTS=/home/informix/etc/sqlhosts
export ODBCINI=/etc/odbc.ini