Build From Sources
If you want to make changes to the code, you can build from sources.
Install hatch to manage the projects dependencies and run dev scripts:
pipx install hatchClone the repository:
git clone https://github.com/LibreTranslate/LibreTranslate.gitcd LibreTranslateHatch will automatically install the required dependencies in a virtual environment, and enable pre-commit, which will run before each commit to run formatting. You can ignore pre-commit checks when committing if necessary: git commit --no-verify -m "Fix"
Run in development:
hatch run dev --debugThen open a web browser to http://localhost:5000
You can also start a new shell in a virtual environment with libretranslate installed:
hatch shelllibretranslate [args]# Orpython main.py [args]You can still use
pip install -e ".[test]"directly if you don’t want to use hatch.
Run the tests
Section titled “Run the tests”Run the test suite and linting checks:
hatch run testTo display all print() when debugging:
hatch run test -sYou can also run the tests on multiple python versions:
hatch run all:testYou can clean the virtual environment with:
hatch env pruneBuild with Docker
Section titled “Build with Docker”docker build -f docker/Dockerfile [--build-arg with_models=true] -t libretranslate .If you want to run the Docker image in a complete offline environment, you need to add the --build-arg with_models=true parameter. Then the language models are downloaded during the build process of the image. Otherwise, these models get downloaded on the first run of the image/container.
Run the built image:
docker run -it -p 5000:5000 libretranslate [args]Or build and run using Docker Compose:
docker compose up -d --buildFeel free to change the
docker-compose.ymlfile to adapt it to your deployment needs, or use an extradocker-compose.prod.ymlfile for your deployment configuration.The models are stored inside the container under
/home/libretranslate/.local/shareand/home/libretranslate/.local/cache. Feel free to use volumes if you do not want to redownload the models when the container is destroyed. To update the models, use the--update-modelsargument.
Externally Managed Environment
Section titled “Externally Managed Environment”Some users may encounter the following error while installing packages:
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.
…This occurs when your operating system depends on and manages Python for core functionality. In this case, you should install and setup venv (virtual environments) to manage project dependencies.
This prevents pip packages from being installed system-wide. This way, there are no risks of pip packages conflicting between multiple projects or the operating system.