系统信息 $ cat/ etc/ os- release PRETTY_NAME= "Ubuntu 22.04.1 LTS" NAME= "Ubuntu" VERSION_ID= "22.04" VERSION= "22.04.1 LTS (Jammy Jellyfish)" VERSION_CODENAME= jammy ID= ubuntu ID_LIKE= debian HOME_URL= "https://www.ubuntu.com/" SUPPORT_URL= "https://help.ubuntu.com/" BUG_REPORT_URL= "https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL= "https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME= jammy安装及简单使用 // 目标工具 sudo- H python3- m pip install beancount辅助工具 fava// 帮助显示 sudo- H python3- m pip install fava// 转换 (微信/支付宝/京东/银行) csv 文件 为 Beancount/Ledger 文件 double - entry- generator 从github下载 https: //github.com/deb-sig/double-entry-generator https: //github.com/deb-sig/double-entry-generator.git 1. 生成 一个名为 example. beancount 的 账本 bean- example> example. beancount2. 以账本信息搭建web服务器 fava example. bean// nohup /usr/bin/python3 /usr/local/bin/fava -H 192.168.XXX.XXX index.beancount > /dev/null 2>&1 & 3. 查看 账本信息 在web浏览器中输入 http: //localhost:5000 其他(待研究) 三个工具 beancount 包 bean- check bean- doctor bean- example bean- format treeify fava 包double - entry- generator 工具特点 1. 账本为文本格式 便于版本管理 数据不再受制于人3. 无美化界面, 需要外挂fava4. fava 采用bs架构, 无 cs架构参考文档 在 https: //www.python.org/getit/ 下载最新的python3 安装包 安装(同时勾选设置PATH), 安装后打开cmd, 键入 pip install fava 此时, fava 和beancount 已经安装完毕bat脚本 @echo off REM 切换到目标目录cd /d D:\ test REM 配置 beancount 文件set BEAN_FILE = xxx.beancount REM1 . 杀掉已有的 fava 相关进程 tasklist /FI"IMAGENAME eq fava.exe" | findstr /I"fava" > nulif %errorlevel%== 0 ( echo 检测到已有 fava 进程, 尝试结束.. . taskkill /F /IM fava.exe> nul2 >&1 ) REM2 . 后台启动 fava(新开进程,不阻塞当前 CMD) start"" fava %BEAN_FILE% REM3 . 退出 CMDexit 对重复的支持 原生不支持 option"insert_pythonpath" "True" ; 这一句所在的文件不能被include plugin"plugins.beancount-repete.plugin" ; 这里有路径, 这一句所在的文件不能被include, 所以得放到 最顶层 beancount 文件中 pip install recurrent git clone https: //github.com/jpluscplusm/beancount-repete.git 参考 https: //github.com/jpluscplusm/beancount-repete 验证 fava 可解析详细log $ sudo- H python3- m pip install beancount[ sudo] passwordfor pop: Collecting beancount Downloading beancount- 3.0 .0 - cp310- cp310- manylinux_2_17_x86_64. manylinux2014_x86_64. whl ( 285 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━285.7 / 285.7 KB21.4 kB/ s eta0 : 00 : 00 Requirement already satisfied: python- dateutil>= 2.6 .0 in/ usr/ lib/ python3/ dist- packages ( from beancount) ( 2.8 .1 ) Requirement already satisfied: click>= 7.0 in/ usr/ lib/ python3/ dist- packages ( from beancount) ( 8.0 .3 ) Collecting regex>= 2022.9 .13 Downloading regex- 2024.7 .24 - cp310- cp310- manylinux_2_17_x86_64. manylinux2014_x86_64. whl ( 776 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━776.5 / 776.5 KB16.5 kB/ s eta0 : 00 : 00 Installing collected packages: regex, beancount Successfully installed beancount- 3.0 .0 regex- 2024.7 .24 WARNING: Running pip as the'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https: //pip.pypa.io/warnings/venv pop@ou: ~ / tmp/ tatarubook$ bean- check Usage: bean- check[ OPTIONS] FILENAME Try'bean-check --help' for help. Error: Missing argument'FILENAME' . $ pip3 show- f beancount Name: beancount Version: 3.0 .0 Summary: Command- line Double- Entry Accounting Home- page: https: //beancount.github.io/ Author: Author- email: Martin Blais< blais@furius. ca> License: GPL- 2.0 - only Location: / usr/ local/ lib/ python3. 10 / dist- packages Requires: click, python- dateutil, regex Required- by: Files: . . / . . / . . / bin/ bean- check. . / . . / . . / bin/ bean- doctor. . / . . / . . / bin/ bean- example. . / . . / . . / bin/ bean- format. . / . . / . . / bin/ treeify beancount- 3.0 .0 . dist- info/ INSTALLER beancount- 3.0 .0 . dist- info/ METADATA beancount- 3.0 .0 . dist- info/ RECORD beancount- 3.0 .0 . dist- info/ REQUESTED beancount- 3.0 .0 . dist- info/ WHEEL beancount- 3.0 .0 . dist- info/ entry_points. txt beancount/ VERSION beancount/ __init__. py beancount/ __pycache__/ __init__. cpython- 310. pyc beancount/ __pycache__/ api. cpython- 310. pyc beancount/ __pycache__/ loader. cpython- 310. pyc beancount/ api. py beancount/ core/ __init__. py beancount/ core/ __pycache__/ __init__. cpython- 310. pyc beancount/ core/ __pycache__/ account. cpython- 310. pyc beancount/ core/ __pycache__/ account_types. cpython- 310. pyc beancount/ core/ __pycache__/ amount. cpython- 310. pyc beancount/ core/ __pycache__/ compare. cpython- 310. pyc beancount/ core/ __pycache__/ convert. cpython- 310. pyc beancount/ core/ __pycache__/ data. cpython- 310. pyc beancount/ core/ __pycache__/ display_context. cpython- 310. pyc beancount/ core/ __pycache__/ distribution. cpython- 310. pyc beancount/ core/ __pycache__/ flags. cpython- 310. pyc beancount/ core/ __pycache__/ getters. cpython- 310. pyc beancount/ core/ __pycache__/ interpolate. cpython- 310. pyc beancount/ core/ __pycache__/ inventory. cpython- 310. pyc beancount/ core/ __pycache__/ number. cpython- 310. pyc beancount/ core/ __pycache__/ position. cpython- 310. pyc beancount/ core/ __pycache__/ prices. cpython- 310. pyc beancount/ core/ __pycache__/ realization. cpython- 310. pyc beancount/ core/ account. py beancount/ core/ account_types. py beancount/ core/ amount. py beancount/ core/ compare. py beancount/ core/ convert. py beancount/ core/ data. py beancount/ core/ display_context. py beancount/ core/ distribution. py beancount/ core/ flags. py beancount/ core/ getters. py beancount/ core/ interpolate. py beancount/ core/ inventory. py beancount/ core/ number. py beancount/ core/ position. py beancount/ core/ prices. py beancount/ core/ realization. py beancount/ loader. py beancount/ ops/ __init__. py beancount/ ops/ __pycache__/ __init__. cpython- 310. pyc beancount/ ops/ __pycache__/ balance. cpython- 310. pyc beancount/ ops/ __pycache__/ basicops. cpython- 310. pyc beancount/ ops/ __pycache__/ compress. cpython- 310. pyc beancount/ ops/ __pycache__/ documents. cpython- 310. pyc beancount/ ops/ __pycache__/ find_prices. cpython- 310. pyc beancount/ ops/ __pycache__/ lifetimes. cpython- 310. pyc beancount/ ops/ __pycache__/ pad. cpython- 310. pyc beancount/ ops/ __pycache__/ summarize. cpython- 310. pyc beancount/ ops/ __pycache__/ validation. cpython- 310. pyc beancount/ ops/ balance. py beancount/ ops/ basicops. py beancount/ ops/ compress. py beancount/ ops/ documents. py beancount/ ops/ find_prices. py beancount/ ops/ lifetimes. py beancount/ ops/ pad. py beancount/ ops/ summarize. py beancount/ ops/ validation. py beancount/ parser/ __init__. py beancount/ parser/ __pycache__/ __init__. cpython- 310. pyc beancount/ parser/ __pycache__/ booking. cpython- 310. pyc beancount/ parser/ __pycache__/ booking_full. cpython- 310. pyc beancount/ parser/ __pycache__/ booking_method. cpython- 310. pyc beancount/ parser/ __pycache__/ cmptest. cpython- 310. pyc beancount/ parser/ __pycache__/ context. cpython- 310. pyc beancount/ parser/ __pycache__/ grammar. cpython- 310. pyc beancount/ parser/ __pycache__/ hashsrc. cpython- 310. pyc beancount/ parser/ __pycache__/ lexer. cpython- 310. pyc beancount/ parser/ __pycache__/ options. cpython- 310. pyc beancount/ parser/ __pycache__/ parser. cpython- 310. pyc beancount/ parser/ __pycache__/ printer. cpython- 310. pyc beancount/ parser/ __pycache__/ version. cpython- 310. pyc beancount/ parser/ _parser. cpython- 310 - x86_64- linux- gnu. so beancount/ parser/ booking. py beancount/ parser/ booking_full. py beancount/ parser/ booking_method. py beancount/ parser/ cmptest. py beancount/ parser/ context. py beancount/ parser/ decimal. c beancount/ parser/ decimal. h beancount/ parser/ grammar. py beancount/ parser/ grammar. y beancount/ parser/ hashsrc. py beancount/ parser/ lexer. l beancount/ parser/ lexer. py beancount/ parser/ macros. h beancount/ parser/ options. py beancount/ parser/ parser. c beancount/ parser/ parser. h beancount/ parser/ parser. py beancount/ parser/ printer. py beancount/ parser/ tokens. h beancount/ parser/ version. py beancount/ plugins/ __init__. py beancount/ plugins/ __pycache__/ __init__. cpython- 310. pyc beancount/ plugins/ __pycache__/ auto . cpython- 310. pyc beancount/ plugins/ __pycache__/ auto_accounts. cpython- 310. pyc beancount/ plugins/ __pycache__/ check_average_cost. cpython- 310. pyc beancount/ plugins/ __pycache__/ check_closing. cpython- 310. pyc beancount/ plugins/ __pycache__/ check_commodity. cpython- 310. pyc beancount/ plugins/ __pycache__/ check_drained. cpython- 310. pyc beancount/ plugins/ __pycache__/ close_tree. cpython- 310. pyc beancount/ plugins/ __pycache__/ coherent_cost. cpython- 310. pyc beancount/ plugins/ __pycache__/ commodity_attr. cpython- 310. pyc beancount/ plugins/ __pycache__/ currency_accounts. cpython- 310. pyc beancount/ plugins/ __pycache__/ implicit_prices. cpython- 310. pyc beancount/ plugins/ __pycache__/ leafonly. cpython- 310. pyc beancount/ plugins/ __pycache__/ noduplicates. cpython- 310. pyc beancount/ plugins/ __pycache__/ nounused. cpython- 310. pyc beancount/ plugins/ __pycache__/ onecommodity. cpython- 310. pyc beancount/ plugins/ __pycache__/ pedantic. cpython- 310. pyc beancount/ plugins/ __pycache__/ sellgains. cpython- 310. pyc beancount/ plugins/ __pycache__/ unique_prices. cpython- 310. pyc beancount/ plugins/ auto . py beancount/ plugins/ auto_accounts. py beancount/ plugins/ check_average_cost. py beancount/ plugins/ check_closing. py beancount/ plugins/ check_commodity. py beancount/ plugins/ check_drained. py beancount/ plugins/ close_tree. py beancount/ plugins/ coherent_cost. py beancount/ plugins/ commodity_attr. py beancount/ plugins/ currency_accounts. py beancount/ plugins/ implicit_prices. py beancount/ plugins/ leafonly. py beancount/ plugins/ noduplicates. py beancount/ plugins/ nounused. py beancount/ plugins/ onecommodity. py beancount/ plugins/ pedantic. py beancount/ plugins/ sellgains. py beancount/ plugins/ unique_prices. py beancount/ projects/ __init__. py beancount/ projects/ __pycache__/ __init__. cpython- 310. pyc beancount/ projects/ __pycache__/ export. cpython- 310. pyc beancount/ projects/ export. py beancount/ scripts/ __init__. py beancount/ scripts/ __pycache__/ __init__. cpython- 310. pyc beancount/ scripts/ __pycache__/ check. cpython- 310. pyc beancount/ scripts/ __pycache__/ deps. cpython- 310. pyc beancount/ scripts/ __pycache__/ directories. cpython- 310. pyc beancount/ scripts/ __pycache__/ doctor. cpython- 310. pyc beancount/ scripts/ __pycache__/ example. cpython- 310. pyc beancount/ scripts/ __pycache__/ format. cpython- 310. pyc beancount/ scripts/ check. py beancount/ scripts/ deps. py beancount/ scripts/ directories. py beancount/ scripts/ doctor. py beancount/ scripts/ example. py beancount/ scripts/ format. py beancount/ tools/ __init__. py beancount/ tools/ __pycache__/ __init__. cpython- 310. pyc beancount/ tools/ __pycache__/ treeify. cpython- 310. pyc beancount/ tools/ treeify. py beancount/ utils/ __init__. py beancount/ utils/ __pycache__/ __init__. cpython- 310. pyc beancount/ utils/ __pycache__/ bisect_key. cpython- 310. pyc beancount/ utils/ __pycache__/ date_utils. cpython- 310. pyc beancount/ utils/ __pycache__/ defdict. cpython- 310. pyc beancount/ utils/ __pycache__/ encryption. cpython- 310. pyc beancount/ utils/ __pycache__/ file_utils. cpython- 310. pyc beancount/ utils/ __pycache__/ import_utils. cpython- 310. pyc beancount/ utils/ __pycache__/ invariants. cpython- 310. pyc beancount/ utils/ __pycache__/ memo. cpython- 310. pyc beancount/ utils/ __pycache__/ misc_utils. cpython- 310. pyc beancount/ utils/ __pycache__/ pager. cpython- 310. pyc beancount/ utils/ __pycache__/ snoop. cpython- 310. pyc beancount/ utils/ __pycache__/ table. cpython- 310. pyc beancount/ utils/ __pycache__/ test_utils. cpython- 310. pyc beancount/ utils/ bisect_key. py beancount/ utils/ date_utils. py beancount/ utils/ defdict. py beancount/ utils/ encryption. py beancount/ utils/ file_utils. py beancount/ utils/ import_utils. py beancount/ utils/ invariants. py beancount/ utils/ memo. py beancount/ utils/ misc_utils. py beancount/ utils/ pager. py beancount/ utils/ snoop. py beancount/ utils/ table. py beancount/ utils/ test_utils. py