我正在尝试在我的macbook上设置IBM MQ和pymqi。MQ是通过docker完成的,没有问题。我已经从https://developer.ibm.com/messaging/2019/02/05/ibm-mq-macos-toolkit-for-developers/安装了IBM MQ,并按照说明进行了操作。我用pip安装了pymqi,之后就没有问题了。
但是当简单地运行import pymqi时,我会得到
ImportError: dlopen(/Users/.../Library/Python/2.7/lib/python/site-packages/pymqi/pymqe.so, 2): Library not loaded: @rpath/libmqic_r.dylib我已经在这上面试了一天了,尝试了各种方式的链接,复制,文件权限,设置环境变量等等。尽管这是一个相当常见的问题(至少看看谷歌的结果),但似乎没有什么建议。
libmqic_r.dylib在两个位置提供,包括/opt/mqm/lib64
otool的输出如下所示,我注意到它没有LC_RPATH,但我并不是真的理解它。我对python比较陌生。
libmqic_r.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
0xfeedfacf 16777223 3 0x00 6 14 928 0x00100085
Load command 0
cmd LC_SEGMENT_64
cmdsize 312
segname __TEXT
vmaddr 0x0000000000000000
vmsize 0x0000000000001000
fileoff 0
filesize 4096
maxprot 0x00000007
initprot 0x00000005
nsects 3
flags 0x0
Section
sectname __text
segname __TEXT
addr 0x00000000000006d0
size 0x000000000000088d
offset 1744
align 2^4 (16)
reloff 0
nreloc 0
flags 0x80000400
reserved1 0
reserved2 0
Section
sectname __cstring
segname __TEXT
addr 0x0000000000000f5d
size 0x000000000000004d
offset 3933
align 2^0 (1)
reloff 0
nreloc 0
flags 0x00000002
reserved1 0
reserved2 0
Section
sectname __unwind_info
segname __TEXT
addr 0x0000000000000fac
size 0x0000000000000048
offset 4012
align 2^2 (4)
reloff 0
nreloc 0
flags 0x00000000
reserved1 0
reserved2 0
Load command 1
cmd LC_SEGMENT_64
cmdsize 152
segname __DATA
vmaddr 0x0000000000001000
vmsize 0x0000000000001000
fileoff 4096
filesize 4096
maxprot 0x00000007
initprot 0x00000003
nsects 1
flags 0x0
Section
sectname __got
segname __DATA
addr 0x0000000000001000
size 0x0000000000000010
offset 4096
align 2^3 (8)
reloff 0
nreloc 0
flags 0x00000006
reserved1 0 (index into indirect symbol table)
reserved2 0
Load command 2
cmd LC_SEGMENT_64
cmdsize 72
segname __LINKEDIT
vmaddr 0x0000000000002000
vmsize 0x0000000000003000
fileoff 8192
filesize 8672
maxprot 0x00000007
initprot 0x00000001
nsects 0
flags 0x0
Load command 3
cmd LC_ID_DYLIB
cmdsize 48
name @rpath/libmqic_r.dylib (offset 24)
time stamp 1 Thu Jan 1 01:00:01 1970
current version 0.0.0
compatibility version 0.0.0
Load command 4
cmd LC_DYLD_INFO_ONLY
cmdsize 48
rebase_off 0
rebase_size 0
bind_off 8192
bind_size 40
weak_bind_off 0
weak_bind_size 0
lazy_bind_off 0
lazy_bind_size 0
export_off 8232
export_size 1008
Load command 5
cmd LC_SYMTAB
cmdsize 24
symoff 9312
nsyms 352
stroff 14952
strsize 1912
Load command 6
cmd LC_DYSYMTAB
cmdsize 80
ilocalsym 0
nlocalsym 281
iextdefsym 281
nextdefsym 68
iundefsym 349
nundefsym 3
tocoff 0
ntoc 0
modtaboff 0
nmodtab 0
extrefsymoff 0
nextrefsyms 0
indirectsymoff 14944
nindirectsyms 2
extreloff 0
nextrel 0
locreloff 0
nlocrel 0
Load command 7
cmd LC_UUID
cmdsize 24
uuid EDA21FCE-4BC7-39FC-A150-95D20DE313A6
Load command 8
cmd LC_VERSION_MIN_MACOSX
cmdsize 16
version 10.13
sdk 10.13
Load command 9
cmd LC_SOURCE_VERSION
cmdsize 16
version 0.0
Load command 10
cmd LC_LOAD_DYLIB
cmdsize 48
name @rpath/libmqe_r.dylib (offset 24)
time stamp 2 Thu Jan 1 01:00:02 1970
current version 0.0.0
compatibility version 0.0.0
Load command 11
cmd LC_LOAD_DYLIB
cmdsize 56
name /usr/lib/libSystem.B.dylib (offset 24)
time stamp 2 Thu Jan 1 01:00:02 1970
current version 1252.50.4
compatibility version 1.0.0
Load command 12
cmd LC_FUNCTION_STARTS
cmdsize 16
dataoff 9240
datasize 72
Load command 13
cmd LC_DATA_IN_CODE
cmdsize 16
dataoff 9312
datasize 0发布于 2019-03-19 20:08:46
IBM已经发布了一组用于MQ的开发模式,其中包括Python - https://github.com/ibm-messaging/mq-dev-patterns
我的理解是,大多数(我猜不是C#)都是在mac上测试过的,因为它们有mac设置说明- https://github.com/ibm-messaging/mq-dev-patterns/tree/master/Python
我怀疑你失踪了-
通过编辑/etc/ PATH,将/IBM-MQ-Toolkit-Mac-x64-9.1.1.0/bin和/IBM-MQ-Toolkit-Mac-x64-9.1.1.0/samp/bin添加到路径中
导出DYLD_LIBRARY_PATH = /IBM-MQ-Toolkit-Mac-x64-9.1.1.0/lib64
如果这是您第一次在mac上进行任何编码,那么您可能会缺少一个C编译器。您将需要安装Xcode。
https://stackoverflow.com/questions/55240523
复制相似问题