PKBM是一个现代化的个人知识库管理系统,支持多平台部署和跨平台使用。系统采用前后端分离架构,后端使用Go语言提供高性能API服务,前端使用Python tkinter构建跨平台GUI界面。
- 语言: Go 1.21+
- 数据库: SQLite3
- API: RESTful API
- 特性: 高性能、跨平台、静态编译
- 语言: Python 3.8+
- GUI框架: tkinter (跨平台兼容)
- 数据库: SQLite3
- 特性: 原生界面、跨平台、易于打包
- 查看所有条目 - 浏览所有知识条目
- 添加新条目 - 创建新的知识条目
- 搜索条目 - 全文搜索功能
- 编辑条目 - 修改现有条目
- 删除条目 - 删除不需要的条目
- 查看分类 - 管理知识分类
- 导入文件 - 批量导入文件
- 数据库状态 - 查看系统状态
- 分类管理 - 自定义知识分类
- 标签系统 - 灵活的标签管理
- 文件附件 - 支持多种文件格式
- 搜索高亮 - 智能搜索结果
- 数据导出 - 支持多种导出格式
- 备份恢复 - 数据安全保护
- 图片管理 - 支持图片附件和书籍封面
- 书籍信息 - 专门的书籍元数据管理
- 后端管理 - 启动/停止/监控后端服务
- 数据同步 - 前后端数据自动同步
- 运行: 直接运行Python脚本
- 打包: 使用PyInstaller生成exe文件
- 安装: 双击exe文件即可使用
- 运行: 直接运行Python脚本
- 打包: 使用python-stdeb生成deb包
- 安装:
sudo dpkg -i pkbm.deb
- iOS: Flutter应用
- Android: Flutter应用
- Web: 浏览器访问
📚 查看完整版本历史: VERSION_HISTORY.md
- Python 3.8+
- Go 1.21+ (仅后端)
- SQLite3
cd windows_gui
pip install -r requirements.txtcd ubuntu_gui
pip3 install -r requirements.txtpython3 main.pycd backend
go run main.gocd windows_gui
python3 main.py
# 在GUI中点击"启动后端"按钮cd windows_gui
python3 build_exe.pycd ubuntu_gui
python3 build_deb.pyPKBM/
├── backend/ # Go后端
│ ├── main.go # 主程序
│ └── go.mod # Go模块文件
├── windows_gui/ # Windows版本
│ ├── main.py # 主程序
│ ├── requirements.txt # 依赖文件
│ └── build_exe.py # 打包脚本
├── ubuntu_gui/ # Ubuntu版本
│ ├── main.py # 主程序
│ ├── requirements.txt # 依赖文件
│ └── build_deb.py # 打包脚本
├── data/ # 数据目录
│ └── pkbm.db # SQLite数据库
├── resources/ # 资源文件
├── start.sh # Linux启动脚本
├── start.bat # Windows启动脚本
└── README.md # 项目说明
- 备份原有数据库文件
- 将数据库文件复制到新版本的
data/目录 - 启动新版本程序,系统会自动识别并加载数据
- 使用SQLite3数据库
- 支持标准SQL操作
- 兼容现有数据格式
- 在
main.py中添加新的方法 - 在界面中添加对应的按钮或菜单
- 更新数据库结构(如需要)
- 测试功能完整性
- 修改
create_widgets()方法 - 调整布局和样式
- 添加新的控件和事件处理
- 在Go后端添加新的路由
- 实现对应的处理函数
- 更新前端调用代码
- 检查
data/目录是否存在 - 确认SQLite3已安装
- 检查文件权限
- 确认tkinter已安装
- 检查Python版本兼容性
- 尝试重新安装依赖
- 检查依赖是否完整
- 确认打包工具版本
- 查看错误日志
# 启用详细日志
export PKBM_DEBUG=true
python3 main.py- Fork项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建Pull Request
本项目采用MIT许可证,详见LICENSE文件。
- 初始版本发布
- 支持基本的CRUD操作
- 跨平台GUI界面
- Go后端API服务
- 数据迁移支持
注意: 本项目正在积极开发中,功能可能会有所变化。建议定期查看更新日志了解最新变化。