我需要在我的Windows 86x上使用PyMQI。 我尝试使用msvc构建setup.py作为编译器 但是当我尝试这样做时,我得到以下错误:
C:\Python27\Lib\pymqi-1.5.4>python setup.py build client
Building PyMQI client 32bits
running build
running build_py
running build_ext
building 'pymqi.pymqe' extension
C:\Users\Admin\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe /c /nologo /Ox /MD
/W3 /GS- /DNDEBUG -DPYQMI_SERVERBUILD=0 "-Ic:\Program Files\IBM\WebSphere MQ\tools\c\include" -IC:\Python27\include -IC
:\Python27\PC /Tcpymqi/pymqe.c /Fobuild\temp.win32-2.7\Release\pymqi/pymqe.obj
pymqe.c
pymqi/pymqe.c(240) : error C2275: 'MQCSP' : illegal use of this type as an expression
c:\Program Files\IBM\WebSphere MQ\tools\c\include\cmqc.h(4001) : see declaration of 'MQCSP'
pymqi/pymqe.c(240) : error C2146: syntax error : missing ';' before identifier 'csp'
pymqi/pymqe.c(240) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(240) : error C2059: syntax error : '{'
pymqi/pymqe.c(247) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(247) : error C2224: left of '.AuthenticationType' must have struct/union type
pymqi/pymqe.c(248) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(248) : error C2224: left of '.CSPUserIdPtr' must have struct/union type
pymqi/pymqe.c(249) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(249) : error C2224: left of '.CSPUserIdLength' must have struct/union type
pymqi/pymqe.c(250) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(250) : error C2224: left of '.CSPPasswordPtr' must have struct/union type
pymqi/pymqe.c(251) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(251) : error C2224: left of '.CSPPasswordLength' must have struct/union type
pymqi/pymqe.c(256) : error C2065: 'csp' : undeclared identifier
pymqi/pymqe.c(256) : warning C4133: '=' : incompatible types - from 'int *' to 'PMQCSP'
error: command 'C:\\Users\\Admin\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bi
n\\cl.exe' failed with exit status 2
答案 0 :(得分:1)
此页面上有一个解决方案:https://github.com/dsuch/pymqi/issues/35
首先在pymqi/pymqe.c
文件中声明行
MQCSP csp = {MQCSP_DEFAULT};
应该移到方法pymqe_MQCONNX
的开头,紧跟在:
PyObject* user_password = NULL;
执行此操作后,构建和安装成功,但import pymqi
发出错误:
ImportError: No module named pymqe
可以通过将pymqe.pyd
从路径\pymqi-1.5.4\build\lib.win32-2.7\pymqi
复制到pymqi-1.5.4\pymqi