通过QuantLib-SWIG进行Python绑定

时间:2013-06-03 17:42:19

标签: windows python-2.7 quantlib-swig

我一直试图让QuantLib的Python绑定工作一段时间,但到目前为止没有任何成功。

我确实遵循了QuantLib安装指南和wiki。那就是使用VC9构建QuantLib而不是VC10,这对我来说很好。

当我尝试构建Python安装文件时,我被告知MSVC无法检测到QuantLib的安装。

请有人能够善意地告诉我这里缺少的东西。正如你现在已经意识到的那样,我是一个初学者,如果过去曾经一遍又一遍地问过问题而道歉,但我在不同的论坛中找不到任何问题的答案:wilmott,sourceforge,stack溢出,定量交换。

非常感谢任何帮助。

祝你好运

这是日志:

c:\QuantLib\QuantLib-SWIG-1.2\Python>set INCLUDE = C:\boost\boost_1_51

c:\QuantLib\QuantLib-SWIG-1.2\Python>set QL_DIR = C:\QuantLib\QuantLib-1.2.1

c:\QuantLib\QuantLib-SWIG-1.2\Python>set LIB= C:\boost\boost_1_51\lib;C:\QuantLi

b \ QuantLib-1.2.1 \ lib中

c:\QuantLib\QuantLib-SWIG-1.2\Python>setup.py build
running build
running build_py
running build_ext
warning: unable to detect QuantLib installation
building 'QuantLib._QuantLib' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox

/ MD / W3 / GS- / DNDEBUG -D_ WIN32 _ -DWIN32 -DNDEBUG -D_WINDOWS -DNOMINMAX -IC:\ Py thon27 \ include -IC:\ Python27 \ PC“-IC:\ Program Files(x86)\ Microsoft Visual Studi o 9.0 \ VC \ INCLUDE“” - IC:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include“-I / TpQuantLib / quantlib_wrap.cpp /Fobuild\temp.win32-2.7\Release\QuantLib/quantlib_w rap.obj / GR / FD / Zm250 / EHsc / MD     cl:命令行错误D8003:缺少源文件名     错误:命令'“C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ BIN \ cl.ex e“'退出状态2失败

1 个答案:

答案 0 :(得分:2)

在设置环境变量时删除=符号周围的空格,否则Python将找不到它们。以下是我在办公室仍然有的WinXP盒子上发生的事情:

C:\Documents and Settings\lballabio>set FOO=foo

C:\Documents and Settings\lballabio>set BAR = bar

C:\Documents and Settings\lballabio>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['FOO']
'foo'
>>> os.environ['BAR']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\os.py", line 423, in __getitem__
    return self.data[key.upper()]
KeyError: 'BAR'
>>>
找到了 FOO(没有空格); BAR(with)不是。

未找到QL_DIR,INCLUDE或LIB变量会导致级联中的其他错误。