Spyder运行financepy代码报LLVM ERROR: __powidf2错误如何解决
Spyder运行financepy相关代码触发LLVM报错的修复方案
在Spyder中运行代码时,启动IPython阶段触发报错:LLVM ERROR: Symbol not found: __powidf2
运行环境信息
- Spyder版本:4.2.1 None
- Python版本:3.8.3 64位
- Qt版本:5.12.10
- PyQt5版本:5.12.3
- 操作系统:Windows 10
测试代码
import numpy as np import matplotlib.pyplot as plt from financepy.finutils import * from financepy.products.bonds.FinBond import * #Define the Bond issueDate = FinDate(15, 5, 2020) maturityDate = FinDate(15, 5, 2030) coupon = 0.050 # This means 5% freqType = FinFrequencyTypes.ANNUAL accrualType = FinDayCountTypes.ACT_ACT_ICMA faceAmount = ONE_MILLION bond = FinBond(issueDate, maturityDate, coupon, freqType, accrualType, faceAmount) print(bond)
问题背景
该代码在VS Code环境下可正常运行,预期输出如下:
OBJECT TYPE: FinBond ISSUE DATE: 15-MAY-2020 MATURITY DATE: 15-MAY-2030 COUPON: 0.05 FREQUENCY: FinFrequencyTypes.ANNUAL ACCRUAL TYPE: FinDayCountTypes.ACT_ACT_ICMA FACE AMOUNT: 1000000
修复方案
该报错本质是Spyder绑定的LLVM运行库版本和financepy依赖的JIT编译组件版本不匹配导致的符号缺失,可按以下步骤依次排查修复:
- 确认Spyder使用的Python解释器和VS Code使用的是同一个,避免多环境冲突:打开Spyder的「工具」-「偏好设置」-「Python解释器」,核对路径和VS Code中激活的环境路径一致,不一致的话手动切换到VS Code对应的环境后重启Spyder测试。
- 升级Spyder对应环境内的numba和llvmlite版本:在对应环境的命令行执行
pip install --upgrade numba llvmlite,升级完成后重启Spyder。 - 如果上述操作无效,降级financepy到适配当前环境的稳定版本:执行
pip install financepy==0.260,该版本对旧版本LLVM兼容性更好。 - 若还是报错,更新Spyder到最新稳定版:当前使用的4.2.1版本较老,自带的IPython和依赖库版本存在兼容问题,升级到Spyder5.x版本即可解决大部分底层依赖冲突。
内容的提问来源于stack exchange,提问作者chengjon
相关产品推荐
相关产品推荐

