Mac系统Pycharm本地安装pymqi 访问ibm websphere mq

一. 基础环境

python: 2.7

pymqi: 1.12.0

ibm websphere mq: 7.5

二. 安装过程

我们的目的是在Pycharm中开发python脚本,本地依赖pymqi,访问远程的ibm websphere mq。

在安装pymqi之前,我们必须下载IBM MQ 依赖库,因为pymqi依赖这些依赖库。

2.1 安装IBM MQ工具箱

下载地址: 9.2.0.0-IBM-MQ-Toolkit-MacX64.tar.gz [IBM MQ工具箱 MAC版本]

解压缩

配置环境变量: 

1. 9.2.0.0-IBM-MQ-Toolkit-MacX64/bin

2. 9.2.0.0-IBM-MQ-Toolkit-MacX64/samp/bin

最后在命令行中执行dspmqver,若输出以下结果(版本号可能不同),则说明配置成功。

Output from the dspmqver command about the toolkit installation

也可以参考网站IBM-MQ,包含了除Python外的其它语言的依赖库,如NodeJs、Java等等。  

2.2 安装pymqi

下载地址: pymqi-1.12.0.tar.gz  在download files中就能找到下载链接

下载后,将其解压缩,打开setup.py,将这份文件中所有包含"/opt/mqm/"的路径全部替换成你下载的IBM MQ工具箱的路径。

比如,我下载的IBM MQ工具箱的路径是: /Users/app/9.2.0.0-IBM-MQ-Toolkit-MacX64/,那么就把所有的"/opt/mqm/"全部替换成"/Users/app/9.2.0.0-IBM-MQ-Toolkit-MacX64/"

这样做的原因ibm websphere mq默认被安装在/opt/mgm下,如下图所示:

红色框就是需要的依赖包。

pymqi的setup.py默认我们在本机安装了ibm websphere mq,所以直接写死了安装pymqi过程中需要的依赖所在的路径为"/opt/mqm",这个非常坑,所以一定要替换成我们自己的路径。

现在先回到pycharm中,找到当前项目配置的python的路径,比如"/Users/xxx/python/2.7/bin/python",假设刚才下载的pymqi被存放在"/Users/xxx/Downloads/pymqi-1.12.0"。

我们通过Pycharm打开命令行,执行: 

sudo /Users/xxx/python/2.7/bin/python /Users/xxx/Downloads/pymqi-1.12.0/setup.py build

在执行:

sudo /Users/xxx/python/2.7/bin/python /Users/xxx/Downloads/pymqi-1.12.0/setup.py install

最终的执行结果为: 

再回到Pycharm,你会发现可以引入pymqi了。

三. 后续问题

1. 引入pymqi后,运行报错: Library not loaded: @rpath/libmqic_r.dylib

解决方案: 在环境变量中添加,以下只需要更改MQ客户端的存储路径,DYLD_LIBRARY_PATH名称不要修改: 

export DYLD_LIBRARY_PATH=$HOME/9.2.0.0-IBM-MQ-Toolkit-MacX64/lib64

参考: 点我

2. 连接MQ时报错: pymqi.MQMIError: MQI Error. Comp: 2, Reason 2538: FAILED: MQRC_HOST_NOT_AVAILABLE

解决方案: 我自己是因为MQ所在的redhat服务器防火墙没有关闭。可以通过telnet自己尝试一下。

 

3. 连接MQ时报错: MQRC_UNKNOWN_CHANNEL_NAME

解决方案: channel名称输入错误,或者不存在这个channel。

 

4.  连接MQ时报错:  mqrc_not_authorized

解决方案: 网上查到是 访问没权限,alter qmgr chlauth(disabled) 把权限验证去掉。 然而这并没有什么用。

我最后是通过设置mcauser('mqm')来解决此问题

Define channel (channel1) chltype (svrconn) trptype (tcp) mcauser(‘mqm’)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值