实操指南:搭建不依赖服务器的档案软件单机版
一、前置准备
本次方案采用Python+内置SQLite实现,全程单机运行,无需配置服务器,零额外依赖。
1. 安装Python3.11(确保兼容性)
- Windows:下载安装包并勾选Add Python to PATH,下载地址:https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe
- MacOS:执行命令brew install python3(需提前安装Homebrew)
- Linux:执行命令sudo apt update && sudo apt install python3
2. 验证安装
打开命令行(Windows用cmd/Mac用终端/Linux用终端),输入以下命令,输出版本号则安装成功:

python --version 或 python3 --version
二、编写单机档案软件核心代码
新建文件夹(如命名为「本地档案管理」),在文件夹内新建文本文档,粘贴以下完整代码,将文档重命名为archive.py(注意:后缀必须改为py,不要保留txt)。
import tkinter as tk
from tkinter import ttk, messagebox
import sqlite3
def init_db():
conn = sqlite3.connect('archive.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS archives (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
category TEXT NOT NULL,
content TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')
conn.commit()
conn.close()
def add_archive():
name = entry_name.get().strip()
category = combo_category.get().strip()
content = text_content.get("1.0", tk.END).strip()
if not name or not category:
messagebox.showwarning("提示", "档案名称和分类不能为空")
return
conn = sqlite3.connect('archive.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO archives (name, category, content) VALUES (?, ?, ?)', (name, category, content))
conn.commit()
conn.close()
messagebox.showinfo("成功", "档案添加完成")
clear_inputs()
load_archives()
def load_archives():
for item in tree.get_children():
tree.delete(item)
conn = sqlite3.connect('archive.db')
cursor = conn.cursor()
cursor.execute('SELECT id, name, category, create_time FROM archives ORDER BY create_time DESC')
for row in cursor.fetchall():
tree.insert('', tk.END, values=row)
conn.close()
def clear_inputs():
entry_name.delete(0, tk.END)
combo_category.set('')
text_content.delete("1.0", tk.END)
root = tk.Tk()
root.title("单机档案管理工具")
root.geometry("600x500")
frame_input = tk.Frame(root)
frame_input.pack(pady=10, padx=10, fill=tk.X)
tk.Label(frame_input, text="档案名称:").grid(row=0, column=0, sticky=tk.W, padx=5)
entry_name = tk.Entry(frame_input, width=30)
entry_name.grid(row=0, column=1, padx=5)
tk.Label(frame_input, text="分类:").grid(row=0, column=2, sticky=tk.W, padx=5)
combo_category = ttk.Combobox(frame_input, values=["工作", "个人", "其他"], state="readonly", width=15)
combo_category.grid(row=0, column=3, padx=5)
tk.Label(frame_input, text="内容:").grid(row=1, column=0, sticky=tk.NW, padx=5, pady=5)
text_content = tk.Text(frame_input, height=5, width=50)
text_content.grid(row=1, column=1, columnspan=3, pady=5)
frame_btn = tk.Frame(root)
frame_btn.pack(pady=5)
tk.Button(frame_btn, text="添加档案", command=add_archive, width=10).pack(side=tk.LEFT, padx=5)
tk.Button(frame_btn, text="刷新列表", command=load_archives, width=10).pack(side=tk.LEFT, padx=5)
tk.Button(frame_btn, text="清空输入", command=clear_inputs, width=10).pack(side=tk.LEFT, padx=5)
tree = ttk.Treeview(root, columns=("id", "name", "category", "time"), show="headings")
tree.heading("id", text="ID")
tree.heading("name", text="档案名称")
tree.heading("category", text="分类")
tree.heading("time", text="创建时间")
tree.column("id", width=50)
tree.column("name", width=150)
tree.column("category", width=100)
tree.column("time", width=200)
tree.pack(pady=10, padx=10, fill=tk.BOTH, expand=True)
init_db()
load_archives()
root.mainloop()
三、运行软件并实操
1. 启动软件
- Windows:找到
archive.py,双击文件直接运行 - Mac/Linux:进入文件夹后执行命令:
python3 archive.py
2. 核心操作步骤
- 填写档案名称:输入归档内容标题(如「2024项目复盘」)
- 选择分类:从下拉列表选对应分类,或直接输入自定义分类
- 填写内容:在文本框输入详细内容,支持多行换行
- 添加档案:点击「添加档案」,内容自动存入本地archive.db文件(全程无需服务器)
- 查看档案:软件自动加载所有档案,列表显示ID、名称、分类、创建时间,双击列表项可查看详情
- 刷新列表:点击「刷新列表」更新新增/修改的档案
四、常见问题排查
1. 双击archive.py无反应
- 检查是否安装Python3,且Windows安装时已勾选Add Python to PATH
- 打开命令行执行
python archive.py,查看具体错误信息
2. 找不到归档的档案
- archive.db文件与archive.py在同一文件夹,搜索该文件名即可定位
3. 分类下拉列表显示不全
- 直接在分类输入框中输入自定义分类,无需从下拉选择