Litefs 开发指南
快速开始
安装开发依赖
pip install -r requirements.txt
开发模式安装
# Windows
.\make.bat dev-install
# Linux/Mac
make dev-install
开发命令
启动服务器
开发服务器
# Windows
.\make.bat serve
# Linux/Mac
make serve
调试模式服务器
# Windows
.\make.bat dev-serve
# Linux/Mac
make dev-serve
WSGI 服务器
使用 Gunicorn
# 先安装 Gunicorn
pip install gunicorn
# 启动服务器
# Windows
.\make.bat wsgi-gunicorn
# Linux/Mac
make wsgi-gunicorn
使用 uWSGI
# 先安装 uWSGI
pip install uwsgi
# 启动服务器
# Windows
.\make.bat wsgi-uwsgi
# Linux/Mac
make wsgi-uwsgi
使用 Waitress
# 先安装 Waitress
pip install waitress
# 启动服务器
# Windows
.\make.bat wsgi-waitress
# Linux/Mac
make wsgi-waitress
测试
# Windows
.\make.bat test # 运行所有测试
.\make.bat test-unit # 运行单元测试
.\make.bat test-cov # 运行测试并生成覆盖率报告
# Linux/Mac
make test
make test-unit
make test-cov
代码质量
# Windows
.\make.bat format # 格式化代码
.\make.bat lint # 代码检查
.\make.bat type-check # 类型检查
.\make.bat check-all # 运行所有检查
# Linux/Mac
make format
make lint
make type-check
make check-all
构建
# Windows
.\make.bat build # 构建源码包
.\make.bat wheel # 构建 wheel 包
.\make.bat clean # 清理构建文件
# Linux/Mac
make build
make wheel
make clean
安装
# Windows
.\make.bat install # 安装包到当前环境
.\make.bat dev-install - 开发模式安装(可编辑)
.\make.bat dev-uninstall - 卸载开发模式安装
# Linux/Mac
make install
make dev-install
make dev-uninstall
发布
# Windows
.\make.bat upload-test - 上传到测试 PyPI
.\make.bat upload - 上传到 PyPI
# Linux/Mac
make upload-test
make upload
项目结构
litefs/
├── src/ # 源代码根目录
│ └── litefs/ # 主包
│ ├── cache/ # 缓存模块
│ ├── handlers/ # 请求处理器
│ ├── middleware/ # 中间件
│ ├── server/ # 服务器实现
│ ├── session/ # 会话管理
│ └── utils/ # 工具函数
├── tests/ # 测试目录
│ └── unit/ # 单元测试
├── examples/ # 示例代码
│ ├── basic/ # 基础示例
│ └── wsgi/ # WSGI 示例
└── docs/ # 文档
配置
服务器配置
服务器可以通过命令行参数配置:
python -m litefs --host localhost --port 9090 --webroot examples\basic\site
参数说明:
--host: 服务器监听地址(默认:localhost)--port: 服务器监听端口(默认:9090)--webroot: Web 根目录(默认:examples/basic/site)--debug: 启用调试模式
WSGI 服务器配置
Gunicorn
gunicorn -w 4 -b localhost:9090 \
--access-logfile - \
--error-logfile - \
--log-level info \
examples.wsgi.wsgi_example:application
参数说明:
-w 4: 4 个工作进程-b localhost:9090: 绑定地址和端口--access-logfile -: 访问日志输出到标准输出--error-logfile -: 错误日志输出到标准输出--log-level info: 日志级别
uWSGI
uwsgi --http localhost:9090 \
--wsgi-file examples/wsgi/wsgi_example.py \
--master \
--processes 4 \
--enable-threads \
--threads 2
参数说明:
--http localhost:9090: HTTP 服务器地址和端口--wsgi-file: WSGI 应用文件--master: 启用主进程--processes 4: 4 个工作进程--enable-threads: 启用线程支持--threads 2: 每个工作进程 2 个线程
Waitress
waitress-serve --port=9090 \
--threads=4 \
examples.wsgi.wsgi_example:application
参数说明:
--port=9090: 监听端口--threads=4: 4 个工作线程
开发工作流
创建功能分支
进行开发
运行测试:
make test-unit运行代码检查:
make check-all提交代码
推送到远程仓库
故障排除
依赖问题
如果遇到依赖问题,尝试重新安装:
pip install -r requirements.txt --force-reinstall
测试失败
确保在项目根目录运行测试,并且 PYTHONPATH 设置正确:
# Windows
set PYTHONPATH=src
python -m pytest tests/unit/ -v
# Linux/Mac
export PYTHONPATH=src
python -m pytest tests/unit/ -v
服务器启动失败
检查端口是否被占用:
# Windows
netstat -ano | findstr :9090
# Linux/Mac
lsof -i :9090
贡献指南
欢迎贡献!请遵循以下步骤:
Fork 项目
创建特性分支
提交更改
推送到分支
创建 Pull Request
许可证
MIT License