Tryton Server
raw JSON → 8.0.1 verified Fri May 01 auth: no python
Tryton is a three-tier high-level general purpose application platform, and trytond is the server component. Version 8.0.1 supports Python >=3.10. Releases follow semantic versioning with annual major versions. The server provides modular business logic, database abstraction, and network protocol handling.
pip install trytond Common errors
error trytond.exceptions.UserError: UserError ↓
cause Trying to access a model or record without proper permissions.
fix
Ensure the user used in transaction has the required access rights.
error ModuleNotFoundError: No module named 'trytond' ↓
cause trytond package not installed or not in Python path.
fix
Install trytond via pip and ensure the virtual environment is activated.
error KeyError: 'database_uri' ↓
cause Config file not loaded or missing database URI.
fix
Set config.update_etc() with correct config file before any trytond module import.
Warnings
breaking Major version upgrades (e.g., 7.0 -> 8.0) require database migration. Always run `trytond-admin --database=DB --update all` after upgrading. ↓
fix Run migration commands as documented in release notes.
deprecated Python 3.9 support dropped in 8.0. Only Python >=3.10 is supported. ↓
fix Upgrade Python to 3.10 or later.
gotcha The config file path must be set before importing trytond modules that read config (e.g., trytond.pool). Missing config leads to obscure errors. ↓
fix Call `config.update_etc(conf_path)` immediately after import, before any other trytond imports.
gotcha Transaction context manager requires a user ID (second argument). Using 0 or None may cause permission errors. ↓
fix Always pass a valid user ID to `Transaction().start(db_name, user_id)`.
Imports
- trytond.pool
from trytond.pool import Pool - trytond.model.Model
from trytond.model import Model - trytond.config
from trytond.config import config - trytond.transaction
from trytond.transaction import Transaction
Quickstart
from trytond.config import config
config.update_etc(os.environ.get('TRYTOND_CONFIG', '/etc/trytond.conf'))
from trytond.pool import Pool
from trytond.transaction import Transaction
pool = Pool('testdb')
pool.start()
with Transaction().start(pool.database_name, 1) as transaction:
# Work with models
User = pool.get('res.user')
users = User.search([])
print(users)