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

时间:2015-12-02 15:12:48

标签: python-2.7 ibm-mq mq

我刚创建了一个带有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

谢谢,感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

我找到了解决方案:

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

答案 1 :(得分: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/ 

答案 2 :(得分:0)

请检查是否已安装MQSeriesClient或.so文件不在LIB路径中