Skip to content

Obsolete installation message when importing via amuse.lab #1192

@LourensVeen

Description

@LourensVeen

Describe the bug
When I made the new build system, I made it so that if you import a code that isn't available from amuse.community.<code>, you get a nice error that tells you how to install it, depending on whether we're in a venv or a conda environment.

What I failed to notice was that you can also install from amuse.lab, and that that has its own error message, which currently reads:

Traceback (most recent call last):
  File "/data2/lveen/amuse-2025.9.0/examples/textbook/gravity_minimal.py", line 26, in <module>
    gravity_minimal(N, t_end)
    ~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/data2/lveen/amuse-2025.9.0/examples/textbook/gravity_minimal.py", line 8, in gravity_minimal
    gravity = Hermite()
  File "/data2/lveen/miniforge3/envs/Amuse-env/lib/python3.14/site-packages/amuse/lab.py", line 133, in __init__
    raise Exception(
        "failed import, code {0} not available, maybe it needs to be "
        "(pip) installed?".format(name))
Exception: failed import, code hermite not available, maybe it needs to be (pip) installed?

We don't want people to pip install anymore. For comparison, when importing from amuse.community it says:

Traceback (most recent call last):
  File "/data2/lveen/amuse-2025.9.0/examples/textbook/gravity_minimal.py", line 1, in <module>
    from amuse.community.hermite import Hermite
  File "/data2/lveen/miniforge3/envs/Amuse-env/lib/python3.14/site-packages/amuse/community/hermite/__init__.py", line 1, in <module>
    from .interface import Hermite
  File "/data2/lveen/miniforge3/envs/Amuse-env/lib/python3.14/site-packages/amuse/community/hermite/interface.py", line 4, in <module>
    HermiteInterface = load_code("hermite", "HermiteInterface")
  File "/data2/lveen/miniforge3/envs/Amuse-env/lib/python3.14/site-packages/amuse/support/import_helper.py", line 38, in load_code
    raise ImportError(msg) from None
ImportError: Error: hermite is not installed, so we cannot use it. To install hermite, go to the terminal, make sure that the 'Amuse-env' conda environment is active and that you are in the amuse source directory, then install the code using './setup install amuse-hermite' and restart your script or reload the kernel.

To Reproduce
from amuse.lab import Hermite with Hermite not installed.

Expected behavior
The second error message above to be displayed

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: building/installingIssue relates to the build system and installing from sourcearea: frameworkIssues related to the AMUSE framework: rfi, amusifier, MPI issueskind: bug

    Type

    No type

    Projects

    Status

    Bug

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions