1

我正在使用 pydev 和 virtualenv(已经成功设置)。您如何将 quantlib(以及任何 python 包装器及其 C++ 本机库)添加到 virtualenv?

我成功地从源代码构建了 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文件夹)。我不确定我是否可以正常工作。

我已经看到了这个解决方案,但我真的想要 virtualenv 中包含的所有东西——python 包装器和 C++ 库,所以当我将项目的 pydev 解释器设置为我的 virtualenv 时,一切都得到了解决。

我不确定这里有哪些最佳实践。

4

1 回答 1

2

我不熟悉 virtualenv 的设置方式。但是:从您的 Python 模块virtualenv/lib/python2.7/site-packages位于virtualenv/lib. 但是,在那里设置所有内容的正确方法是告诉构建机器您想要图书馆的位置;在你的情况下(假设我上面的猜测是正确的)你可以通过构建 QuantLib 来做到这一点:

./configure --prefix=/path/to/virtualenv
make
make install

/path/to/virtualenvvirtualenv 的路径在哪里,包括virtualenv文件夹(但不是 lib)。这会将头文件和本机库放在 virtualenv 中的正确位置。之后,使用您刚刚安装的 QuantLib 库构建 QuantLib-SWIG:我认为最简单的方法是在 virtualenv 中进行(即使用其中的 Python 解释器)。激活 env,进入 QuantLib-SWIG/Python 目录,运行:

export PATH=/path/to/virtualenv/bin:$PATH
python setup.py build
python setup.py install

PATH可能需要进行上述设置才能找到正确的quantlib-config脚本。(顺便说一句,你最终应该只得到一个QuantLibPython 模块site-packages,而不是build/lib.linux-x86_64-2.7你现在拥有的全部。)

于 2014-11-03T09:29:03.637 回答