这个问题不再像Bloomberg now provides 64 bit binaries
那样具有相关性我正在尝试为Bloomberg终端编译64位Python API库,但未成功,因为我需要> 4gig地址空间和Bloomberg only provides 32 bit binaries。
我正在运行使用MS VS 2008编译的标准Python 2.7 64位,我可以在运行Python时从标题中看到:
Y:\>python
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
我已经在WAPI页面API下载中心下载了最新的API,并严格遵循this page关于如何为Python编译64位exensions的说明,首先下载Visual C ++ 2008 Express,然后安装SDK 3.5 SPI,然后进入SDK命令提示符,然后执行:
setenv /Release /x64
set DISTUTILS_USE_SDK=1
命令提示符按预期变为绿色。
我已经设置了正确的环境变量来查找C ++ API,即BLPAPI_ROOT:
C:\Program Files\Microsoft SDKs\Windows\v7.0>set
ALLUSERSPROFILE=C:\ProgramData
AMDAPPSDKROOT=C:\Program Files (x86)\AMD APP SDK\2.9\
APPDATA=C:\Users\thomas\AppData\Roaming
APPVER=6.1
asl.log=Destination=file
BLPAPI_ROOT=C:\blp\API\APIv3\C++API\v3.7.5.1
CLASSPATH=.;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
.......
您可以看到存在:
C:\Program Files\Microsoft SDKs\Windows\v7.0>cd %BLPAPI_ROOT%
C:\blp\API\APIv3\C++API\v3.7.5.1>
但是...
C:\blp\API\APIv3\Python\v3.5.2.0>python setup.py install
running install
running build
running build_py
running build_ext
building 'blpapi._internals' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\amd64\cl.exe /c /nolog
o /Ox /MD /W3 /GS- /DNDEBUG -IC:\blp\API\APIv3\C++API\v3.7.5.1\include -Ic:\pyth
on27\include -Ic:\python27\PC /Tpblpapi/internals_wrap.cxx /Fobuild\temp.win-amd
64-2.7\Release\blpapi/internals_wrap.obj
internals_wrap.cxx
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\xlocale(342) : war
ning C4530: C++ exception handler used, but unwind semantics are not enabled. Sp
ecify /EHsc
blpapi/internals_wrap.cxx(3892) : warning C4244: 'argument' : conversion from 'b
lpapi_Float64_t' to 'blpapi_Float32_t', possible loss of data
blpapi/internals_wrap.cxx(3906) : warning C4244: 'argument' : conversion from 'b
lpapi_Float64_t' to 'blpapi_Float32_t', possible loss of data
blpapi/internals_wrap.cxx(3925) : warning C4244: 'argument' : conversion from 'b
lpapi_Float64_t' to 'blpapi_Float32_t', possible loss of data
blpapi/internals_wrap.cxx(3989) : warning C4244: 'argument' : conversion from 'b
lpapi_Float64_t' to 'blpapi_Float32_t', possible loss of data
blpapi/internals_wrap.cxx(4006) : warning C4244: 'argument' : conversion from 'b
lpapi_Float64_t' to 'blpapi_Float32_t', possible loss of data
blpapi/internals_wrap.cxx(16170) : warning C4244: '=' : conversion from 'Py_ssiz
e_t' to 'unsigned int', possible loss of data
blpapi/internals_wrap.cxx(16246) : error C2664: 'blpapi_ServiceRegistrationOptio
ns_getGroupId' : cannot convert parameter 2 from 'const char *' to 'char *'
Conversion loses qualifiers
error: command 'cl.exe' failed with exit status 2
我一直在为这场编纂战斗战2天。我卸载了所有C编译器,重新安装它们。卸载Anaconda Python,重新安装bog标准的Python 64 clean(两者之间擦除的目录)。重新安装了Bloomberg API。在从干净开始之前,基本上试图让我的机器尽可能干净。没有快乐。
有人这样做过吗?我错过了上面的内容吗?
谷歌搜索我已经听说过很多关于vcvarsall.bat以及你应该如何将它复制到vcvarsall amd64文件,但我明白如果你从SDK3运行上面的步骤,这是没有必要的。 5命令行(即设置正确的环境变量,以便使用正确的64位编译器),我相信我成功了。我不认为问题存在。
终端的WAPI页面(版本3.5.2)上发布了Python代码中的错误。而是使用website(3.5.5)上的那个。使用上面的配方编译为64位没有问题。