虎虎瞎折腾 | Beancount 复式记账软件(安装、试用与卸载)

背景

本虎之前试用过一些记账软件,但是 app 类的可能存在后期停止运营,数据无法导出或延续的弊端,所以就用 excel 表格简单的做了一个满月记账,按月记录差不多够用了。
最近本虎在刷小红书的时候,看到有人提到了开源记账软件 gnucash 这个软件本虎之前有试用过啦,就是它的软件体积大,小文件多,不够优雅,虽然它是复式记账,足够复杂显得特别专业,但是界面不好看呀,所以虎虎就没有再燃起重新试用的念头。正巧,在 L 站看到了一篇使用 serv00 搭建 Firefly-iii 记账工具的帖子,然后下面的回帖里有人提到了 beancount 这个基于 python 的复式记账工具,正好今天没有事情(其实是要去理发的,但是楼下的理发店回东北过年了,今天正式放假,所以就无法理发了),于是虎虎就开始了 beancount 的冒险之旅。

基本环境

因为 beancount 是基于 python 的,所以第一步肯定是要确认你的电脑上已经安装好 python 并且版本要大于 3.9
打开终端或命令行,输入

python3 --version

就可以看到你当前安装的版本啦,因为虎虎不喜欢硬盘里有很多小文件,感觉就像是小虫子爬在屋子里一样,所以在确认 MacOS 内置了 Python3 以后,就决定用它了!
再确认一下有没有安装 pip

pip3 --version
pip3 list
pip3 install --upgrade pip

安装 beancount

官方文档 页面有一个用户安装手册(在 Google 文档),里面介绍了很详细的安装方法,官方不推荐使用 pip3 来安装了,而是推荐 pipx 替代。(整只虎傻掉了,但是没有办法,还是按照推荐的做吧)
所以要先按照 pipx 的推荐,安装好 pipx 再用它安装 beancount
打开终端,输入

brew install pipx

Homebrew 就会自动安装 pipx 啦,以及好多个依赖的软件包,其中就包含了一个 [email protected]
然后要开始安装啦,就是很简单的两行代码

pipx install beancount
pipx install fava
pipx list

这里的 fava 是一个让 beancount 记账数据可视化的工具。

试用

接下来就是正式的试用啦,随便从网上找一个 中文教程 吧。
呃,编辑器, vs code 的体积太大了,并且容易产生各种缓存,有数码产品洁癖的本虎自然接受不了,就用 CotEditor 替代吧,没有语法高亮方案也没关系,手动添加一个,把常用的关键词加上就好啦。

啊!!!这个记账记录,一条条的手动录入,也太麻烦了吧。虎虎躺平.gif

卸载

打开终端

pipx uninstall fava
pipx uninstall beancount

pipx 先不卸载了,万一过两天又发现了新的软件呢,还可以试用下~不过现在系统里有两个 python 唉

之前也有过类似的折腾软件经历,当时也是一顿折腾最后拉倒了

我有个疑问,使用 brew 套娃式安装各种“前置”,之后如何清理干净不再使用的?

记得我当时套娃了有三层…

啊?brew 不是说它的安装都是在它内部的环境里嘛,卸载的时候它也会处理干净才对啊

哈哈哈,几乎同样的经历,安装,使用,卸载一条龙。
还是用 Excel 每天记 5 分钟就够了,并不需要太多可视化专业化的分析,能知道一个月吃饭花了多少钱就行。简单摆弄下 Excel 的数据透视表功能就足够了。

就是忘了卸载,后来不知道安装的是什么了、能不能卸载的情况。


感觉还是以前记账好记,现在电子支付、各种各样的购买方式、各种各样的消费,记账变得很复杂。

eg.

  • 虚拟消费
  • 订阅制服务
  • 联合会员
  • 大宗购买
  • 满减
  • 极速支付
  • 多人消费
  • 报销
  • 内部余额
  • 按量扣钱
  • 期货、预购、众筹、定金尾款
    ……

现在我采取的是定期统计余额的方式

因为 收入 - 支出 = 余额
所以只需要这个等式中的任意两项,就可以推算出第三项。
而大部分人的 收入 = 工资 + 其他收入
支出 = 信用卡 + 微信转账 + 支付宝转账

只需要每个月记录上述的内容,就可以推算出第三项啦。
而因为金融资产价格波动产生的浮动性盈利与亏损,则会直接反应在余额中,所以持有金融资产的话也可以增加一项余额的记录,来反应投资的效益。

看了下 pipx 的 GitHub readme,是为每个安装的应用都创建一个孤立的虚拟环境确实还不错,虽然我已经用 conda 配好 beamcount 的环境了(

另外 fava 是依赖 beancount 的吧,应该不用重复安装?

之前隔壁也有人 Python 太新导致安装失败的 :rofl: 在Windows上使用打包好的beancount+fava客户端 - #7,来自 TomoeMami - 闲聊灌水 - Emacs China

官方都为你把 Emacs mode 写好了(

装个 OCRMyPDF(

这玩意长啥样好看么

Beancount 本身没有 GUI 界面,实现可视化的是开发者独立出来的 Fava(依赖 Beancount所以安装后者也能直接获得 Beancount)

开发者官网给的 Fava Demo 好像失效了,不过首页也有个截图: Fava

太 geek 了

它可以出统计图和统计表!资产负债表,现金流量表,利润表都可以出,还是很强大的。就是不好用

!就是不好用!

额,可能因为我就是经管相关专业的,所以会计这套看着甚至很亲切……

还好吧,你只需要:

  1. 安装 scoop
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
  1. 安装 pipx scoop install pipx
  2. 安装 fava pipx install fava
  3. 在 Emacs/Vim/VSCode 里装个插件搞定自动缩进和语法检查

明明很简单嘛(逃

BTW 我是从去年 7 月中旬开始用 Beancount 记账的

曾经使用过,后来放弃了,或者是放弃记账这事,原因是感觉凭空多出来很麻烦的事,记账并不能让钱变多,现在全部使用电子支付很好溯源,尽量让所有支出走一张银行卡就好了。

不过单论这个 Beancount,还是很好用的,学习复式记账法后感觉很好用,非常符合咱这半个程序员的审美。

以后要是有复式记账需求的话还是会用这个的,顺便说一下,这软件最麻烦的不是记账,而是平账。

个人使用预算模式记账的确挺好,复式记账太麻烦,客观上不太现实。

1 Like

目前商家采取的两种模式:

  • 鼓励大宗购买,本来是一次超爽的支付,但是记账记半天。
  • 鼓励快速购买,消费过于无感,可能忘记记账,或者记账比支付还要麻烦。

这两种模式都天然地让人抵触记账,但反过来,记账也能让人抵触消费。