AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1839457
Accepted
rand'Chris
rand'Chris
Asked: 2024-04-18 07:38:56 +0800 CST2024-04-18 07:38:56 +0800 CST 2024-04-18 07:38:56 +0800 CST

如何使用旧的/损坏的 perl Finance::Quote 在 KMyMoney、GNUCash 或其他程序中获取股票报价

  • 772

TLDR:我无法从 GnuCash 和 KMyMoney 中获取在线股票报价。perl Finance::Quote 模块似乎有问题。解决这个问题最简单的方法是什么?

背景

许多免费应用程序(例如 KMyMoney 和 GnuCash)使用 Perl 库 Finance::Quote 从各个网站获取股票、债券和货币报价。然而,这些网站经常更改其面向公众的 URL,从而破坏了这些应用程序的此功能。我正在使用长期支持的 Linux 发行版 (Ubuntu LTS),因为我喜欢稳定性,但向后移植中没有该库的更新,因此我的软件现在已损坏。

最近 Ubuntu 22.04 LTS 就发生了这种情况。KMyMoney 随 Finance::Quote 版本 1.51(libfinance-quote-perl,于 2021 年发布)一起安装,但由于雅虎最近的更改,该版本现在失败了。这就是我验证该库的安装版本的方法:

perl -MFinance::Quote -e 'print "$Finance::Quote::VERSION\n"'

GnuCash 有另一个实用程序,您可以使用它来验证这是否是问题所在(yahoo_json如果不同,请替换为您的数据提供者):

gnc-fq-dump -v yahoo_json AAPL

错误输出如下所示:

Finance::Quote fields Gnucash uses:
    symbol: AAPL                 <=== required
      date: ** missing **        <=== recommended
  currency: ** missing **        <=== required
      last: **missing**          <=\
       nav: **missing**          <=== one of these
     price: **missing**          <=/
  timezone:                      <=== optional

** This stock quote cannot be used by GnuCash!


All fields returned by Finance::Quote for stock AAPL

stock           field  value
-----           -----  -----
AAPL         errormsg: Error retrieving quote for AAPL. Attempt to fetch the URL https://query1.finance.yahoo.com/v7/finance/quote?symbols=AAPL resulted in HTTP response 401 (Unauthorized)
AAPL             last: **missing**
AAPL              nav: **missing**
AAPL            price: **missing**
AAPL          success: 0
AAPL           symbol: AAPL

我们可以判断这是服务器问题,因为它返回 HTTP 代码 401。

在不升级整个操作系统的情况下,让在线报价再次运行的最佳方法是什么?

perl
  • 1 1 个回答
  • 81 Views

1 个回答

  • Voted
  1. Best Answer
    rand'Chris
    2024-04-18T07:38:56+08:002024-04-18T07:38:56+08:00

    可能有多种方法可以获取此库的更新版本,包括从发行版的下一个版本下载较新的软件包并强制安装,或者将下一个发行版添加到 apt.sources.list 并固定版本这样只有这个包更新,通过添加下一个发行版的deb-src标头并运行来构建自定义向后移植apt source -b,或者我没有考虑到的其他一些事情(在下面添加您的解决方案!)

    鉴于未来几周内应该会发布新的 24.04 LTS 版本,以下是我使用以下方法更新库的方法CPAN:

    1. 作为root用户,运行perl -MCPAN -e shell
    2. 使用默认值回答任何问题。如果出现提示且需要,请安装 Term::Readline 和 CPAN::DistnameInfo。
    3. 进入:upgrade Finance::Quote

    这将安装该库的新系统范围版本,包括更新所有依赖项,这可能需要一段时间。如果您没有安装 C 编译器。您可能需要sudo apt install build-essential开始。

    升级完成后,将来可以使用相同的命令进行升级。虽然这会“污染”您已安装的软件包,但好处是应用程序依赖项不会破坏。缺点是,安装第一次以这种方式安装的发行版软件包可能会在安装其他软件包时降级。

    最后,再次运行此命令显示成功,GUI 应用程序现在可以运行:

    gnc-fq-dump -v yahoo_json AAPL
    
    The output now looks something like the following:
    
        Finance::Quote fields Gnucash uses:
        symbol: AAPL                 <=== required
          date: 04/17/2024           <=== recommended
      currency: USD                  <=== required
          last: 168                  <=\
           nav:                      <=== one of these
         price:                      <=/
      timezone:                      <=== optional
    
    All fields returned by Finance::Quote for stock AAPL
    
    stock           field  value
    -----           -----  -----
    AAPL            close: 169.38
    AAPL         currency: USD
    AAPL             date: 04/17/2024
    AAPL        div_yield: 0.56086904
    [...]
    AAPL          success: 1
    AAPL           symbol: AAPL
    AAPL             type: EQUITY
    AAPL           volume: 50205853
    AAPL       year_range:        162.8 - 199.62
    
    • 1

相关问题

  • Perl RE 全局匹配不起作用 /.*(11).*/g

  • 如何升级 SpamAssassin?

  • 使用 Perl 删除 BerkeleyDB 行

  • 无法在 exiftool 中访问配置的自定义 xmp 命名空间

  • 在第二列中打印数字在新行中始终按照第 1 列中指定的次数打印

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve