The Python backend has been migrated from conda to uv, managed transparently
by reticulate. This provides a significantly smoother installation experience —
no separate conda installation is required, and the Python environment is
provisioned automatically on first use.
EasyNMT declares fasttext as a hard dependency. The canonical fasttext
package on PyPI has no prebuilt wheels for Windows and fails to compile from
C++ source on MSVC. The workaround uses UV_OVERRIDE to redirect the
fasttext requirement to fasttext-predict — a prediction-only fork that
ships prebuilt binary wheels for Windows, macOS, and Linux across Python
3.9–3.13, and exposes the same import fasttext namespace. The override is
applied only on Windows and selects the correct wheel for the active Python
version by inspecting the uv Python directory on disk (avoiding any premature
Python initialisation). Language detection is handled in R, so the
prediction-only scope of fasttext-predict is not a limitation.
GPU detection and PyTorch wheel selection are now handled automatically via
UV_TORCH_BACKEND=auto. uv queries for NVIDIA (CUDA), AMD (ROCm), and Intel
GPU drivers and selects the correct PyTorch index without any manual
configuration. onnxruntime-gpu is still restricted to CUDA (NVIDIA) only;
AMD and Intel GPU users receive CPU onnxruntime alongside GPU-accelerated
PyTorch.
initialize_easynmt() is now a no-op after the first successful call within
a session.source_python() for the internal translation script is called after all
py_require() declarations, ensuring the uv environment is fully provisioned
before the Python module is loaded.check_backend() reports GPU status, PyTorch version, and cache directories.