如何在virtualenv中添加QuantLib(ubuntu)
我正在使用pydev和一个已经成功设置好的虚拟环境(virtualenv)。我想知道如何将quantlib(以及任何Python封装和它的C++本地库)添加到这个虚拟环境中。
我已经按照这里的说明成功从源代码构建了quantlib和quantlib-SWIG,具体链接是这里。我注意到在构建boost之后,//usr/local/lib目录下有一些libQuantLib.*文件,这些文件可能就是本地库。
接着,我尝试将libQuantLib.*文件复制到我的virtualenv/lib/python2.7/site-packages目录,具体方法在这里有说明,但Eclipse仍然提示有未解决的导入问题(此时我还在外部引用//usr/local/lib/QuantLib-SWIG-1.4/Python/build/lib.linux-x86_64-2.7/QuantLib文件夹)。我不确定这样做是否正确。
我看到过这个解决方案,但我真的希望所有内容都能包含在虚拟环境中——包括Python封装和C++库,这样当我将项目的pydev解释器设置为我的虚拟环境时,所有问题都能得到解决。
我不太确定这里的最佳实践是什么。
1 个回答
我对虚拟环境(virtualenv)的设置不是很熟悉。不过,从你的Python模块放在virtualenv/lib/python2.7/site-packages
这个路径来看,我猜本地库应该放在virtualenv/lib
里。不过,想要把一切设置得正确,最好是告诉构建工具你想把库放在哪里;在你的情况下(假设我的猜测是对的),你可以通过以下方式构建QuantLib:
./configure --prefix=/path/to/virtualenv
make
make install
这里的/path/to/virtualenv
是你虚拟环境的路径,包括virtualenv
文件夹(但不要包括lib
)。这样可以把头文件和本地库放到虚拟环境的正确位置。完成这个后,使用你刚安装的QuantLib库来构建QuantLib-SWIG:我觉得最简单的方法是在虚拟环境里进行(也就是使用里面的Python解释器)。激活虚拟环境,进入QuantLib-SWIG/Python目录,然后运行:
export PATH=/path/to/virtualenv/bin:$PATH
python setup.py build
python setup.py install
这里设置PATH
可能是必要的,以便找到正确的quantlib-config
脚本。(顺便说一下,你最终应该只在site-packages
里得到一个QuantLib
的Python模块,而不是现在你看到的整个build/lib.linux-x86_64-2.7
的东西。)