Skip to content

Inconsistencies between build.py and setup.py results in different build instructions for different OS #121

Description

@adot-7

I followed the README installation instructions. Running the tests fails with ModuleNotFoundError: No module named 'volestipy'.

Also, poetry install fails because build.py imports setuptools, which produces the error ModuleNotFoundError: No module named 'setuptools'. I believe this happens because setuptools is not included in the [build-system].requires list in pyproject.toml.

To Reproduce

  1. Fork and clone the repository and cd into the clone directory
  2. set the python version to 3.8.x( I did this by pyenv local 3.8.20 and confirmed the version by python --version)
  3. git submodule update --init
  4. Follow the README for downloading Boost & Ipsolve libraries.
  5. Install system dependencies( since I am on Fedora, I did this by sudo dnf install suitesparse suitesparse-devel )
  6. install poetry by curl -sSL https://install.python-poetry.org | python3 - --version 1.3.2
  7. poetry install
    Observe the setuptools error. After I added 'setuptools' to the [build-system].requires list in pyproject.toml, the installation completed without errors.
  8. install gurobi (not mandatory to reproduce the error)
  9. Execute python tests/fba.py
    Observe the error:
Traceback (most recent call last):
  File "tests/fba.py", line 12, in <module>
    from dingo import MetabolicNetwork
  File "/home/adot/projects/geomscaleTesting/dingo/dingo/__init__.py", line 28, in <module>
    from dingo.PolytopeSampler import PolytopeSampler
  File "/home/adot/projects/geomscaleTesting/dingo/dingo/PolytopeSampler.py", line 22, in <module>
    from volestipy import HPolytope
ModuleNotFoundError: No module named 'volestipy'

Expected behavior

  • poetry install should execute without error. Adding 'setuptools' to [build-system].requires list pyproject.toml is necessary for this.

  • Running the tests should execute without error.

Environment
OS: Fedora Linux 42
Python: 3.8.20

Additional context
I can prepare a PR adding setuptools to the build-system requires list. I am still trying to figure out the volestipy dependency part though. I would appreciate any guidance on this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions