{"id":24738,"library":"trytond","title":"Tryton Server","description":"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.","status":"active","version":"8.0.1","language":"python","source_language":"en","source_url":"https://github.com/tryton/trytond","tags":["erp","crm","business-platform","three-tier","modular"],"install":[{"cmd":"pip install trytond","lang":"bash","label":"Install server"}],"dependencies":[{"reason":"Core dependency for database abstraction layer.","package":"python-sql","optional":false},{"reason":"Used for WSGI server and request handling.","package":"werkzeug","optional":false},{"reason":"Recommended production WSGI server.","package":"gunicorn","optional":true},{"reason":"PostgreSQL adapter; often needed for database backend.","package":"psycopg2-binary","optional":true}],"imports":[{"note":"Pool is used to get model instances.","symbol":"trytond.pool","correct":"from trytond.pool import Pool"},{"note":"Base class for all models.","symbol":"trytond.model.Model","correct":"from trytond.model import Model"},{"note":"Configuration object used to read config file.","symbol":"trytond.config","correct":"from trytond.config import config"},{"note":"Transaction handling for database operations.","symbol":"trytond.transaction","correct":"from trytond.transaction import Transaction"}],"quickstart":{"code":"from trytond.config import config\nconfig.update_etc(os.environ.get('TRYTOND_CONFIG', '/etc/trytond.conf'))\nfrom trytond.pool import Pool\nfrom trytond.transaction import Transaction\n\npool = Pool('testdb')\npool.start()\n\nwith Transaction().start(pool.database_name, 1) as transaction:\n    # Work with models\n    User = pool.get('res.user')\n    users = User.search([])\n    print(users)","lang":"python","description":"Basic setup to start Tryton server, connect to database, and perform a query. Requires a running PostgreSQL and proper config."},"warnings":[{"fix":"Run migration commands as documented in release notes.","message":"Major version upgrades (e.g., 7.0 -> 8.0) require database migration. Always run `trytond-admin --database=DB --update all` after upgrading.","severity":"breaking","affected_versions":">=8.0.0"},{"fix":"Upgrade Python to 3.10 or later.","message":"Python 3.9 support dropped in 8.0. Only Python >=3.10 is supported.","severity":"deprecated","affected_versions":"8.0.0+"},{"fix":"Call `config.update_etc(conf_path)` immediately after import, before any other trytond imports.","message":"The config file path must be set before importing trytond modules that read config (e.g., trytond.pool). Missing config leads to obscure errors.","severity":"gotcha","affected_versions":"all"},{"fix":"Always pass a valid user ID to `Transaction().start(db_name, user_id)`.","message":"Transaction context manager requires a user ID (second argument). Using 0 or None may cause permission errors.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Ensure the user used in transaction has the required access rights.","cause":"Trying to access a model or record without proper permissions.","error":"trytond.exceptions.UserError: UserError"},{"fix":"Install trytond via pip and ensure the virtual environment is activated.","cause":"trytond package not installed or not in Python path.","error":"ModuleNotFoundError: No module named 'trytond'"},{"fix":"Set config.update_etc() with correct config file before any trytond module import.","cause":"Config file not loaded or missing database URI.","error":"KeyError: 'database_uri'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}