biocore / biocore/empress

empress and rachis-qiime2-2026.7

Open
#571 2 comments 0 reactions 0 assignees View on GitHub
bug refactoring user support
Dominant language
JavaScript
Stars
56
Forks
32
PR merge metrics
No merged PRs in 30d

Description

Hello,
I have experience some issues after adding empress to the most recent qiime2 release via `pip install empress `

```
Building wheels for collected packages: empress
Building wheel for empress (pyproject.toml) ... done
Created wheel for empress: filename=empress-1.2.0-py3-none-any.whl size=295022 sha256=993ec9754173cad02b63c167fd0997877b9286dc27a843bbb088337791dcb1aa
Stored in directory: /home/bt140047/.cache/pip/wheels/60/63/14/2bfe3b8deac71153ebbf96f464dc40677f9789fbb6709a639a
Successfully built empress
Installing collected packages: cython, empress
Successfully installed cython-3.3.0 empress-1.2.0

Although it seems to be ok, the `qiime dev refresh-cache `command results in this error messages:

```
Although it seems to be ok, the `qiime dev refresh-cache `command results in this error messages:

```
QIIME is caching your current deployment for improved performance. This may take a few moments and should only happen once per deployment.
Traceback (most recent call last):
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/util.py", line 277, in get_plugin_manager
return qiime2.sdk.PluginManager.reuse_existing()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/rachis/sdk/plugin_manager.py", line 64, in reuse_existing
raise UninitializedPluginManagerError
rachis.sdk.plugin_manager.UninitializedPluginManagerError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/bin/qiime", line 11, in
sys.exit(qiime())
^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/click/core.py", line 1161, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/click/core.py", line 1082, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/click/core.py", line 1691, in invoke
cmd_name, cmd, args = self.resolve_command(ctx, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/click/core.py", line 1738, in resolve_command
cmd = self.get_command(ctx, cmd_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/commands.py", line 100, in get_command
plugin = self._plugin_lookup[name]
^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/commands.py", line 76, in _plugin_lookup
import q2cli.core.cache
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/core/cache.py", line 276, in
CACHE = DeploymentCache()
^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/core/cache.py", line 61, in __init__
self._state = self._get_cached_state(refresh=refresh)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/core/cache.py", line 107, in _get_cached_state
self._cache_current_state(current_requirements)
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/core/cache.py", line 196, in _cache_current_state
state = self._get_current_state()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/core/cache.py", line 244, in _get_current_state
plugin_manager = q2cli.util.get_plugin_manager()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/q2cli/util.py", line 289, in get_plugin_manager
return qiime2.sdk.PluginManager()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/rachis/sdk/plugin_manager.py", line 73, in __new__
self._init(add_plugins=add_plugins)
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/rachis/sdk/plugin_manager.py", line 111, in _init
plugin = entry_point.load()
^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
module = import_module(match.group('module'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/empress/__init__.py", line 9, in
from empress.core import Empress
File "/home/bt140047/miniconda3/envs/rachis-qiime2-2026.7/lib/python3.12/site-packages/empress/core.py", line 19, in
import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'
```

I found out that downgrading setuptools to 80.x causes tomlkit to be downgraded to 0.13 (rachis-qiime2-2026.7 has 0.15.1).
However, empress works now as expected, but I am wondering whether I do introduce other issues to the rachis-qiime2 release.

My idea was to install empress in a rachis-tiny env, but the latest release also has tomlkit 0.15.1 installed. As I would not use the tiny env for the other qiime2 analysis steps, I am wondering whether it would be safe to use empress and tomlkit 0.13 via a separate tiny environment.

Best regards

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with `pip install empress` in the rachis-qiime2-2026.7 environment, then start from `empress/__init__.py` and `empress/core.py`, where the traceback reaches the missing `pkg_resources` import. Compare the empress, setuptools, and tomlkit versions involved; done means establishing a supported installation path or documenting the incompatible dependency combination.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
backend, bioinformatics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.