libmqic_r.so:无法打开共享对象文件:没有这样的文件或目录,python

问题描述 投票:3回答:3

我刚刚创建了一个带有centos的VM vagrant,使用Miniconda安装了python2.7和pip,使用pip安装了pymqi,创建了一个测试python文件,看看我的pymqi安装是否正确:

import pymqi
print "hello..."

但我得到了这个:

[vagrant@localhost projects]$ python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
import pymqi
File "/home/vagrant/miniconda2/lib/python2.7/site-packages/pymqi/__init__.py", line 109, in <module>
import pymqe, CMQC, CMQCFC, CMQXC
ImportError: libmqic_r.so: cannot open shared object file: No such file or directory

我找了那个文件:

[vagrant@localhost projects]$ find /opt/mqm/ -name 'libmqic_r.so'
/opt/mqm/lib/compat/libmqic_r.so
/opt/mqm/lib/libmqic_r.so
/opt/mqm/lib64/compat/libmqic_r.so
/opt/mqm/lib64/libmqic_r.so

谢谢,非常感谢您的帮助。

python-2.7 ibm-mq mq
3个回答
3
投票

我找到了解决方案:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mqm/lib64

0
投票

作为一般规则,使用LD_LIBRARY_PATH变量是一种不好的做法。您最好只为64位版本的共享对象创建适当的符号链接。

出于个人原因,在安装IBM MQSeries Client时,只有32位mq库链接到/ usr / lib /:

[root@host ~]# ll /usr/lib/libmq*
lrwxrwxrwx 1 root root 26 Jan 25 12:49 /usr/lib/libmqicb_r.so -> /opt/mqm/lib/libmqicb_r.so
lrwxrwxrwx 1 root root 24 Jan 25 12:49 /usr/lib/libmqicb.so -> /opt/mqm/lib/libmqicb.so
lrwxrwxrwx 1 root root 25 Jan 25 12:49 /usr/lib/libmqic_r.so -> /opt/mqm/lib/libmqic_r.so
lrwxrwxrwx 1 root root 23 Jan 25 12:49 /usr/lib/libmqic.so -> /opt/mqm/lib/libmqic.so
lrwxrwxrwx 1 root root 25 Jan 25 12:49 /usr/lib/libmqiz_r.so -> /opt/mqm/lib/libmqiz_r.so
lrwxrwxrwx 1 root root 23 Jan 25 12:49 /usr/lib/libmqiz.so -> /opt/mqm/lib/libmqiz.so
lrwxrwxrwx 1 root root 25 Jan 25 12:49 /usr/lib/libmqjx_r.so -> /opt/mqm/lib/libmqjx_r.so
lrwxrwxrwx 1 root root 26 Jan 25 12:49 /usr/lib/libmqmcs_r.so -> /opt/mqm/lib/libmqmcs_r.so
lrwxrwxrwx 1 root root 24 Jan 25 12:49 /usr/lib/libmqmcs.so -> /opt/mqm/lib/libmqmcs.so
lrwxrwxrwx 1 root root 25 Jan 25 12:49 /usr/lib/libmqmzse.so -> /opt/mqm/lib/libmqmzse.so

虽然64位库不是:

[root@host ~]# ll /usr/lib64/libmq*
ls: /usr/lib64/libmq*: No such file or directory

你可以通过执行来修复

[root@host ~]# ln -s /opt/mqm/lib64/libmq* /usr/lib64/ 

0
投票

请检查您是否安装了MQSeriesClient,否则.so文件不在LIB路径中

© www.soinside.com 2019 - 2024. All rights reserved.