在Windows上使用打包好的beancount+fava客户端

Beancount在Windows上安装,一直有一个绕不过去的编译问题,官方推荐的几种方式(MSVC编译器、WSL、Cygwin)都对非电脑专业用户很不友好(程序员也会被绕一下)。

幸好,我发现GitHub上早有人创建了Beancount+Fava的可执行打包exe脚本,但是疏于更新,上次发布已是三年前了。我fork了这个repo,并把打包的Beancount和Fava更新到了最新版本(Beancount 3.0.0 + Fava 1.30)。先将使用流程记录于下。

安装压缩包到系统

  1. Release界面Action点进去之后的Artifacts界面下载GitHub Action打包好的fava.zip

  2. 然后按Win+R,输入cmd并回车,进入cmd界面,输入:

      mkdir C:\Users\Public\bin\fava
    

    无反应或输出「子目录或文件已存在」为正常。

  3. 然后按Win+E 进入资源管理器界面,在上方地址栏输入C:\Users\Public\bin\fava,按回车进入该目录。

  4. 把先前下载好的fava.zip层层解压,直到看见apppython两个文件夹。

    解压完成后可能会报「不支持的压缩算法」错误,不用管。

  5. 把这两个文件夹拷贝到先前打开的C:\Users\Public\bin\fava目录中。

设置启动Fava快捷方式

  1. 使用Fava时,需要设置一个主文件(参考1byvoid博文),这里以main.bean为例,也可以叫1.bean114514.bean,都不影响。

  2. 在账本主文件同级文件夹(main.bean文件存放的目录),右键—新建—文本文档,然后将其打开,复制以下内容进去:

       C:\Users\Public\bin\fava\app\Scripts\fava.exe main.bean
    

    注意,如果你的主文件不叫main.bean,那就把上面这行最后的main.bean换成你的主文件带后缀名全名。

  3. 然后保存,并关闭,把这个新建 文本文档.txt重命名为fava.bat,并保存。

  4. 最后双击启动fava.bat,会看见一个窗口弹出,上面有一行小字:

       Starting Fava on http://127.0.0.1:5000
    
  5. 按住Ctrl,点击窗口中的后面那行链接(或者打开你的浏览器,在地址栏里输入后面的地址也行),就能进入Fava的网页界面。

  6. 要关闭Fava,直接点右上角的❌就行。

友情链接:

1 个赞

我就是在windows下用beancount+fava,没有遇到需要编译的问题啊。装好anaconda,然后 pip install fava,直接就把beancount和fava装好了。

1 个赞

emacs的beancount mode提供了 beancount-fava 命令,可以直接打开浏览器启动fava

1 个赞

说明你已经安装好了相关编译器。

Installing this package by pip requires compiling some C++ code during the installation procedure which is only possible if an appropriate compiler is available on the computer, otherwise you will receive an error message about missing vsvarsall.bat or cl.exe.

你是要使用还是开发?你说的这个是在 “Native for development”

1 个赞

用自家电脑试了下,确实能成功安装fava和beancount,不用再另行安装编译器了。

但是我周五用公司电脑的时候也确实是安装失败了,才找其他安装方法。等下周一去看看是什么个情况。

PS C:\Users\riko> pip --version
pip 24.3.1 from C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.496.0_x64__qbz5n2kfra8p0\Lib\site-packages\pip (python 3.13)

PS C:\Users\riko> pip cache purge
Files removed: 158
PS C:\Users\riko> pip install beancount
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Collecting beancount
  Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/bb/0d/4bfa4e10c1dac42a8cf4bf43a7867b32b7779ff44272639b765a04b8553e/beancount-3.0.0.tar.gz (1.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 7.4 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      + meson setup C:\Users\riko\AppData\Local\Temp\pip-install-matoi8w9\beancount_9d85d59e28b14d50aa8b6b41ed5c448e C:\Users\riko\AppData\Local\Temp\pip-install-matoi8w9\beancount_9d85d59e28b14d50aa8b6b41ed5c448e\.mesonpy-kysma_fl -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=C:\Users\riko\AppData\Local\Temp\pip-install-matoi8w9\beancount_9d85d59e28b14d50aa8b6b41ed5c448e\.mesonpy-kysma_fl\meson-python-native-file.ini
      The Meson build system
      Version: 1.6.1
      Source dir: C:\Users\riko\AppData\Local\Temp\pip-install-matoi8w9\beancount_9d85d59e28b14d50aa8b6b41ed5c448e
      Build dir: C:\Users\riko\AppData\Local\Temp\pip-install-matoi8w9\beancount_9d85d59e28b14d50aa8b6b41ed5c448e\.mesonpy-kysma_fl
      Build type: native build
      Project name: beancount
      Project version: 3.0.0
      WARNING: Failed to activate VS environment: Could not find C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe

      ..\meson.build:1:0: ERROR: Unknown compiler(s): [['icl'], ['cl'], ['cc'], ['gcc'], ['clang'], ['clang-cl'], ['pgcc']]
      The following exception(s) were encountered:
      Running `icl ""` gave "[WinError 2] 系统找不到指定的文件。"
      Running `cl /?` gave "[WinError 2] 系统找不到指定的文件。"
      Running `cc --version` gave "[WinError 2] 系统找不到指定的文件。"
      Running `gcc --version` gave "[WinError 2] 系统找不到指定的文件。"
      Running `clang --version` gave "[WinError 2] 系统找不到指定的文件。"
      Running `clang-cl /?` gave "[WinError 2] 系统找不到指定的文件。"
      Running `pgcc --version` gave "[WinError 2] 系统找不到指定的文件。"

      A full log can be found at C:\Users\riko\AppData\Local\Temp\pip-install-matoi8w9\beancount_9d85d59e28b14d50aa8b6b41ed5c448e\.mesonpy-kysma_fl\meson-logs\meson-log.txt
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

家用电脑之前为了安装Windows版的beancount,安装过Visual Studio,公司电脑没有。

编辑:检查了下pypi界面的文件,原来是因为我安装的Python版本太新(3.13),beancount的whl并没有编译这版本的。退回到3.12就可以了🙏

1 个赞