【问题标题】:QuantLib in Python - cannot pickle 'SwigPyObject' objectPython 中的 QuantLib - 无法腌制“SwigPyObject”对象
【发布时间】:2021-01-27 10:30:45
【问题描述】:

我在 Visual Studio 2017 中编译了 QuantLib,并在 Release x64 下构建了库。然后我按照这里的说明安装了QuantLib Swig:https://www.quantlib.org/install/windows-python.shtml

VS中的目录设置如截图:

然后我使用 QuantLib 测试了一个普通的欧式期权,它运行时没有出现错误:

option = EuropeanOption(PlainVanillaPayoff(Option.Call,100),EuropeanExercise(Date(11,5,2021)))

但是我无法在 IDE(我使用 Spyder)中检查变量 option 并看到错误:

Spyder was unable to retrieve the value of this variable from the console.

错误信息是:

cannot pickle 'SwigPyObject' object

我看到这个变量的值是EuropeanOption object of QuantLib.QuantLib module

版本:

Python: 3.8
Quantlib: 1.19
QuantLib-SWIG: 1.19
boost: 1_74_0
Spyder: 4.1.4

非常感谢任何帮助。

【问题讨论】:

    标签: python spyder quantlib quantlib-swig


    【解决方案1】:

    此处是 Spyder 维护者)不幸的是,并非所有 Python 对象都可以通过变量资源管理器进行探索。只有picklable的可以查看,你上面贴的错误信息说EuropeanOption是不行的。

    此外,没有解决方法可以避免此问题,因为可腌制是 Python 对象的基本属性,Spyder 无法更改。

    【讨论】:

    • 谢谢卡洛斯!这很清楚。但是,是否有任何其他 IDE 允许通过变量资源管理器查看对象?
    • 我不知道。但是,我们计划在未来改进对象检索方式的实现,以允许查看不可拾取的对象。
    猜你喜欢
    • 2020-04-07
    • 2018-12-10
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多