# Install module in editable mode with pyproject.toml

**URL:** https://discuss.tryton.org/t/install-module-in-editable-mode-with-pyproject-toml/9415
**Category:** Developer
**Created:** [September 30, 2026, 11:34am UTC](https://discuss.tryton.org/t/install-module-in-editable-mode-with-pyproject-toml/9415 "2026-09-30T11:34:29Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![maxx](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/maxx/32/2320_2.png) [@maxx](https://discuss.tryton.org/u/maxx)
#### Post date: [September 30, 2026, 11:34am UTC](https://discuss.tryton.org/t/install-module-in-editable-mode-with-pyproject-toml/9415/1 "2026-09-30T11:34:29Z")

</div>

Did someone test module installation in editable mode ?  
Installation is working but when launching `./.venv/trytond/bin/trytond-admin -c../.trytond.conf -d mr_3009 -v --all --activate-dependencies`

I’m getting this error:

```auto
Traceback (most recent call last):
File "/home/mrichez/Workspace/tryton/tryton_custo_80/./.venv/trytond/bin/trytond-admin", line 6, in 
sys.exit(main())
~~~~ ^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/cli/admin.py", line 21, in main
admin.run(options)
~~~~~~~~~ ^^^^^^^^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/admin.py", line 58, in run
pool.init(update=options.update, lang=list(lang),
~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
activatedeps=options.activatedeps,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
indexes=options.indexes)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/pool.py", line 143, in init
self.start()
~~~~~~~~~~ ^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/pool.py", line 114, in start
register_classes(with_test=cls.test)
~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/modules/` **`init`** `.py", line 439, in register_classes
for node in create_graph(
~~~~~~~~~~~~ ^
get_modules(with_test=with_test), with_test=with_test):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/modules/` **`init`** `.py", line 173, in create_graph
info = get_module_info(module, with_test=with_test)
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/modules/` **`init`** `.py", line 57, in get_module_info
module_config, directory = parse_module_config(name, path)
~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/modules/` **`init`** `.py", line 37, in parse_module_config
with tools.file_open(os.path.join(name, *path, 'tryton.cfg')) as fp:
~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/tools/misc.py", line 46, in file_open
return io.open(path, mode, encoding=encoding)
~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/mrichez/Workspace/tryton/tryton_custo_80/.venv/trytond/lib/python3.14/site-packages/trytond/modules/tampography/tryton.cfg'

```

There’s a file with path `_saluc_tampography.pth` in my .venv/lib/python/site\_packages/  
with correct path to my module.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [September 30, 2026, 12:23pm UTC](https://discuss.tryton.org/t/install-module-in-editable-mode-with-pyproject-toml/9415/2 "2026-09-30T12:23:21Z")

</div>

Using editable mode without sub-directory for the module is tricky.  
The simplest way is to use a fresh layout created using cookiecutter with a prefix. It creates the necessary symlinks to make it works.
