我正在使用pydev和virtualenv(已经成功设置)。如何将quantlib(以及任何python包装器及其C ++本机库)添加到virtualenv?
我成功地从源代码构建了quantlib和quantlib-SWIG,如here所述。我注意到在boost构建之后, // usr / local / lib 包含 libQuantLib。* 文件,这些文件可能是本机库。
然后我尝试将 libQuantLib。* 复制到我的 virtualenv / lib / python2.7 / site-packages ,如here所述,但是eclipse仍抱怨未解决的导入(此时我还在外部引用 // usr / local / lib / QuantLib-SWIG-1.4 / Python / build / lib.linux-x86_64-2.7 / QuantLib 文件夹)。我不确定我是否正确地工作了。
我已经看过this解决方案,但我真的想要virtualenv中包含的所有内容 - 包括python包装器和C ++库,所以当我将项目的pydev解释器设置为我的virtualenv时,一切都解决了。
我不确定这里有什么最佳做法。
答案 0 :(得分:2)
我不熟悉virtualenv的设置方式。但是:由于您的Python模块位于virtualenv/lib/python2.7/site-packages
,我猜测本地库应该放在virtualenv/lib
中。但是,在那里设置所有内容的正确方法是告诉构建机器您想要库的位置;在你的情况下(假设我的猜测是正确的)你可以通过以下方式构建QuantLib来实现:
./configure --prefix=/path/to/virtualenv
make
make install
其中/path/to/virtualenv
是您的virtualenv的路径,包括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
脚本。 (顺便说一下,你最终只能在QuantLib
中使用site-packages
Python模块,而不是现在拥有的build/lib.linux-x86_64-2.7
整个模块。)