You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Poetry安装qfrm库后运行代码出现依赖与模块缺失问题

问题

我尝试用Poetry在Python中运行一段实现Excel YIELD()功能的代码,依赖qfrm库,代码如下:

from qfrm import Bond

def excel_yield(price, par, rate, years, freq):
    return Bond(par=par, T=years, freq=freq, cpn=rate, yld=None, price=price).yield_to_maturity()

print(excel_yield(price=62.254, par=100, rate=1.875/100, years=18, freq=2))

执行poetry add qfrm后生成的pyproject.toml文件如下:

[tool.poetry]
name = "fixed-income-annuity"
version = "0.1.0"
description = ""
authors = ["pathikrit <pathikritbhowmick@msn.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.9"
python-dateutil = "^2.8.2"
qfrm = "^0.2.0.27"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

运行poetry run python main.py时先出现yaml模块缺失错误,手动安装pyyaml后,又出现qfrm.Options模块缺失错误。我的Poetry环境正常,安装其他包如python-dateutil可正常使用,请问为何会出现这些问题?

解答
  • yaml依赖缺失原因:qfrm库的官方配置里未正确声明pyyaml为依赖项,导致Poetry安装qfrm时不会自动拉取该依赖,只有运行时才暴露缺失问题。
  • qfrm.Options模块缺失原因:
    1. 版本兼容性问题:你安装的0.2.0.27版本可能存在模块结构变更,或发布时打包不完整,遗漏了Options模块文件。
    2. 安装损坏:安装过程中可能出现文件下载中断、校验失败等情况,导致部分模块文件缺失。
    3. 内部导入逻辑问题:qfrm库内部的代码可能存在导入路径错误,比如在该版本中Options模块的位置已变更,但其他模块仍沿用旧路径导入。

解决建议:

  1. 尝试切换qfrm的版本,比如安装更早的稳定版本:
    poetry remove qfrm
    poetry add qfrm==0.2.0.26
    
  2. 直接从源码仓库安装,确保模块文件完整:
    poetry remove qfrm
    poetry add git+https://github.com/qfrm/qfrm.git
    
  3. 手动补全所有缺失依赖:查找qfrm源码中的requirements文件,把所有依赖用Poetry安装,比如:
    poetry add pyyaml
    

内容的提问来源于stack exchange,提问作者pathikrit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:20:08