以下是该段内容的完整翻译,保留了原有格式和说明: --- # 贡献指南(Contributing) 如果你想对代码进行修改,可以从源码构建并运行 API。 ## 构建依赖(Build Dependencies) - cmake ### Debian / Ubuntu ```sh sudo apt-get install cmake ``` ### Fedora / RHEL ```sh sudo dnf install cmake ``` --- ## 快速开始(Getting Started) 安装 [`hatch`](https://hatch.pypa.io) 来管理项目依赖并运行开发脚本: ```bash pipx install hatch ``` 克隆仓库: ```bash git clone https://github.com/LibreTranslate/LibreTranslate.git cd LibreTranslate ``` Hatch 会自动在虚拟环境中安装所需依赖,并启用 [`pre-commit`](https://pre-commit.com/),在每次提交前运行代码格式化检查。如果需要,你可以跳过 pre-commit 检查: ```bash git commit --no-verify -m "Fix" ``` 以开发模式运行: ```bash hatch run dev --debug ``` 然后在浏览器中打开:<http://localhost:5000> 你也可以进入安装了 libretranslate 的虚拟环境: ```bash hatch shell libretranslate [args] # 或者 python main.py [args] ``` > 如果不想使用 hatch,也可以直接使用 `pip install -e ".[test]"` 安装依赖。 --- ## 运行测试(Run the tests) 运行测试套件和代码检查: ```bash hatch run test ``` 调试时显示所有 `print()`: ```bash hatch run test -s ``` 在多个 Python 版本下运行测试: ```bash hatch run all:test ``` 清理虚拟环境: ```bash hatch env prune ``` --- ## 使用 Docker 运行(Run with Docker) Linux/macOS:`./run.sh [args]` Windows:`run.bat [args]` 然后在浏览器中打开:<http://localhost:5000> --- ## 使用 Docker 构建(Build with Docker) ```bash docker build -f docker/Dockerfile [--build-arg with_models=true] -t libretranslate . ``` 如果你希望在完全离线的环境中运行 Docker 镜像,请添加 `--build-arg with_models=true` 参数。这样语言模型会在构建镜像时下载。否则模型会在镜像/容器首次运行时下载。 运行已构建的镜像: ```bash docker run -it -p 5000:5000 libretranslate [args] ``` 或者使用 Docker Compose 构建并运行: ```bash docker compose up -d --build ``` > 你可以根据部署需求修改 [`docker-compose.yml`](https://github.com/LibreTranslate/LibreTranslate/blob/main/docker-compose.yml),也可以创建一个额外的 `docker-compose.prod.yml` 文件用于生产环境配置。 > > 模型被存储在容器中的 `/home/libretranslate/.local/share` 和 `/home/libretranslate/.local/cache` 路径下。如果你不希望每次销毁容器后重新下载模型,可以挂载 volume。要更新模型,使用 `--update-models` 参数。 --- ## 常见问题(FAQ) ### Externally Managed Environment(外部管理的环境) 某些用户在安装依赖包时可能遇到以下错误: ```text error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. … ``` 这是因为你的操作系统依赖并管理系统级 Python 环境。在这种情况下,应该使用 `venv`(虚拟环境)来管理项目依赖。 这样可以避免系统范围内安装 pip 包,从而防止不同项目或系统自身产生依赖冲突。 参考资料: - [Python venv 官方文档](https://docs.python.org/library/venv.html)