5

我刚刚用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

谢谢,感谢您的帮助。

4

3 回答 3

8

我找到了解决方案:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mqm/lib64
于 2015-12-02T16:06:19.697 回答
2

作为一般规则,使用 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/ 
于 2016-01-25T14:23:31.613 回答
0

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

于 2018-09-11T10:23:05.350 回答