我刚创建了一个带有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
谢谢,感谢您的帮助。
答案 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路径中