QuantLib在Python中 - 无法将'SwigPyObject'对象进行pickle处理。

3
我在Visual Studio 2017中编译了QuantLib,并在Release x64下构建了该库。然后,我按照这里的说明安装了QuantLib Swig:https://www.quantlib.org/install/windows-python.shtml 如截图所示,VS中的目录已设置好: enter image description here 接着,我使用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

我看到这个变量的值是QuantLib.QuantLib模块的EuropeanOption对象

版本:

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

非常感谢您的帮助。

1个回答

1
Spyder 的维护者在这里)不幸的是,并非所有的 Python 对象都可以通过变量资源管理器进行探索。只有那些可序列化的对象才能被查看,而你上面发布的错误消息说EuropeanOption不是可序列化的。
此外,没有解决此问题的方法,因为成为可序列化是 Python 对象的基本属性,无法由 Spyder 更改。

谢谢你,Carlos!这很清楚。但是是否有其他IDE可以通过变量浏览器查看对象? - yi_fr
据我所知,目前还没有这样的功能。不过,我们计划在未来改进对象检索的实现方式,以允许查看非可选对象。 - Carlos Cordoba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接