Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to install mikado with mamba via multiple strategies #445

Open
isaacvock opened this issue Sep 1, 2023 · 3 comments
Open

Unable to install mikado with mamba via multiple strategies #445

isaacvock opened this issue Sep 1, 2023 · 3 comments

Comments

@isaacvock
Copy link

isaacvock commented Sep 1, 2023

Hello,

I have tried several strategies to install version 2.3.4 of mikado via mamba, all of which have led to problems in the installation preventing me from running mikado --help without throwing an error. The errors discussed below were generated on a Windows machine running the subsystem for Linux with mamba version 1.4.1 and conda version 23.1.0. I have reproduced the same errors on a shared cluster running Red Hat Enterprise Linux version 8.6, mamba version 1.4.2, and conda version 23.3.1.

Strategy 1: Simplest mamba strategy

Code: mamba create -c bioconda --name mikado mikado

Installation proceeds without error

Error message when running mikado --help:

Traceback (most recent call last):
  File "/home/isaacvock/mambaforge/envs/mikado/bin/mikado", line 11, in <module>
    sys.exit(main())
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/__main__.py", line 18, in main
    from Mikado.subprograms import configure, prepare, serialise, pick, compare, util
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/subprograms/__init__.py", line 6, in <module>
    from . import configure
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/subprograms/configure.py", line 26, in <module>
    from .prepare import parse_prepare_options
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/subprograms/prepare.py", line 22, in <module>
    from ..preparation.prepare import prepare
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/preparation/prepare.py", line 4, in <module>
    from .checking import create_transcript, CheckingProcess
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/preparation/checking.py", line 9, in <module>
    from ..transcripts.transcriptchecker import TranscriptChecker
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/transcripts/__init__.py", line 8, in <module>
    from .transcript import Transcript, Metric
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/transcripts/transcript.py", line 4, in <module>
    from .transcript_methods import splitting, retrieval
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/transcripts/transcript_methods/retrieval.py", line 12, in <module>
    from ...serializers.junction import Junction
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/serializers/__init__.py", line 6, in <module>
    from . import orf
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/serializers/orf.py", line 34, in <module>
    class Orf(DBBASE):
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/serializers/orf.py", line 62, in Orf
    query = column_property(select([Query.query_name]).where(
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/_selectable_constructors.py", line 489, in select
    return Select(*entities)
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/selectable.py", line 5130, in __init__
    self._raw_columns = [
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/selectable.py", line 5131, in <listcomp>
    coercions.expect(
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 413, in expect
    resolved = impl._literal_coercion(
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 651, in _literal_coercion
    self._raise_for_expected(element, argname)
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 1139, in _raise_for_expected
    return super()._raise_for_expected(
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 710, in _raise_for_expected
    super()._raise_for_expected(
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 535, in _raise_for_expected
    raise exc.ArgumentError(msg, code=code) from err
sqlalchemy.exc.ArgumentError: Column expression, FROM clause, or other columns clause element expected, got [<sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x7f13eaf68cc0>]. Did you mean to say select(<sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x7f13eaf68cc0>)?

Issue #438 had mentioned needing to pin the sqlalchemy version, so I tested that next.

Strategy 2: Strategy 1 + pinned sqlalchemy version

Code: mamba create -c bioconda -c anaconda --name mikado mikado sqlalchemy=1.4.46

Installation proceeds without error

Error message when running mikado --help:

Traceback (most recent call last):
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/configuration/configuration.py", line 147, in load_scoring
    checked = ScoringFile.Schema().load(scoring)
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/marshmallow_dataclass/__init__.py", line 768, in load
    all_loaded = super().load(data, many=many, **kwargs)
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/marshmallow/schema.py", line 719, in load
    return self._do_load(
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/marshmallow/schema.py", line 901, in _do_load
    raise exc
marshmallow.exceptions.ValidationError: {'scoring': defaultdict(<class 'dict'>, {'blast_score': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'cdna_length': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'cds_not_maximal': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'cds_not_maximal_fraction': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'highest_cds_exon_number': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'intron_fraction': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'is_complete': {'value': [TypeError("TargetScore.__init__() missing 1 required positional argument: 'filter'"), ValidationError({'rescaling': ['Must be one of: max, min.'], 'value': ['Unknown field.']})]}, 'number_internal_orfs': {'value': [TypeError("TargetScore.__init__() missing 1 required positional argument: 'filter'"), ValidationError({'rescaling': ['Must be one of: max, min.'], 'value': ['Unknown field.']})]}, 'non_verified_introns_num': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'proportion_verified_introns_inlocus': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'retained_fraction': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'retained_intron_num': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'selected_cds_fraction': {'value': [TypeError("TargetScore.__init__() missing 1 required positional argument: 'filter'"), ValidationError({'rescaling': ['Must be one of: max, min.'], 'value': ['Unknown field.']})]}, 'selected_cds_intron_fraction': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'selected_cds_length': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'selected_cds_num': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}, 'combined_cds_locus_fraction': {'value': [ValidationError({'rescaling': ['Must be one of: target.'], 'value': ['Missing data for required field.']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: 'filter'")]}})}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/isaacvock/mambaforge/envs/mikado/bin/mikado", line 11, in <module>
    sys.exit(main())
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/__main__.py", line 18, in main
    from Mikado.subprograms import configure, prepare, serialise, pick, compare, util
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/subprograms/__init__.py", line 6, in <module>
    from . import configure
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/subprograms/configure.py", line 26, in <module>
    from .prepare import parse_prepare_options
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/subprograms/prepare.py", line 22, in <module>
    from ..preparation.prepare import prepare
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/preparation/prepare.py", line 4, in <module>
    from .checking import create_transcript, CheckingProcess
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/preparation/checking.py", line 9, in <module>
    from ..transcripts.transcriptchecker import TranscriptChecker
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/transcripts/__init__.py", line 8, in <module>
    from .transcript import Transcript, Metric
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/transcripts/transcript.py", line 14, in <module>
    default_config = MikadoConfiguration()
  File "<string>", line 14, in __init__
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/configuration/configuration.py", line 76, in __post_init__
    self.check()
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/configuration/configuration.py", line 86, in check
    self.load_scoring(logger=logger)
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/configuration/configuration.py", line 154, in load_scoring
    raise InvalidConfiguration(msg)
Mikado.exceptions.InvalidConfiguration: 'The configuration file /home/isaacvock/mambaforge/envs/mikado/lib/python3.10/site-packages/Mikado/configuration/scoring_files/plant.yaml is invalid:\n{\'scoring\': defaultdict(<class \'dict\'>, {\'blast_score\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'cdna_length\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'cds_not_maximal\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'cds_not_maximal_fraction\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'highest_cds_exon_number\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'intron_fraction\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'is_complete\': {\'value\': [TypeError("TargetScore.__init__() missing 1 required positional argument: \'filter\'"), ValidationError({\'rescaling\': [\'Must be one of: max, min.\'], \'value\': [\'Unknown field.\']})]}, \'number_internal_orfs\': {\'value\': [TypeError("TargetScore.__init__() missing 1 required positional argument: \'filter\'"), ValidationError({\'rescaling\': [\'Must be one of: max, min.\'], \'value\': [\'Unknown field.\']})]}, \'non_verified_introns_num\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'proportion_verified_introns_inlocus\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'retained_fraction\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'retained_intron_num\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'selected_cds_fraction\': {\'value\': [TypeError("TargetScore.__init__() missing 1 required positional argument: \'filter\'"), ValidationError({\'rescaling\': [\'Must be one of: max, min.\'], \'value\': [\'Unknown field.\']})]}, \'selected_cds_intron_fraction\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'selected_cds_length\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'selected_cds_num\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}, \'combined_cds_locus_fraction\': {\'value\': [ValidationError({\'rescaling\': [\'Must be one of: target.\'], \'value\': [\'Missing data for required field.\']}), TypeError("MinMaxScore.__init__() missing 1 required positional argument: \'filter\'")]}})}'

This error is concerning as it seems to imply something wrong with the provided plant.yaml scoring file, which I wouldn't know how to fix. Despite this, I moved on to try some radically different strategies inspired by a number of previously raised Issues and Pull Requests.

Strategy 3: Full environment specification from #443

Code: mamba env create -f environment.yaml

I used the following environment.yaml file, which is from #443, though I added mikado to the list of dependencies as the documentation edits included in that pull request suggested that it should have been included:

name: mikado
channels:
  - bioconda
  - conda-forge
  - defaults
  - anaconda
dependencies:
  - biopython>=1.78
  - cython>=0.29.13
  - docutils
  - drmaa
  - hypothesis
  - msgpack-python>=1.0.0
  - networkx>=2.3
  - numpy>=1.17.2
  - pandas>=1.0
  - pip
  - pyfaidx>=0.5.8
  - samtools>=1.11
  - htslib>=1.11
  - pysam>=0.15.3
  - python>=3.6,<3.10
  - pyyaml>=5.1.2
  - scipy>=1.3.1
  - gmap==2021.08.25
  - snakemake-minimal>=5.7.0
  - sqlalchemy>1.4.0,<2
  - sqlalchemy-utils==0.34.1
  - sqlite
  - tabulate>=0.8.5
  - wheel
  - pytest>=5.4.1
  - python-rapidjson>=1.0
  - marshmallow==3.14.1
  - marshmallow-dataclass==8.5.3
  - typeguard>=2.9.1
  - conda-forge::toml>=0.10.0
  - bioconda::pyfaidx>=0.5.8
  - mikado

I'll note that this strategy only works with a flexible channel priority. The installation proceeds without error though.

Error message when running mikado --help:

Traceback (most recent call last):
  File "/home/isaacvock/mambaforge/envs/mikado/bin/mikado", line 7, in <module>
    from Mikado.__main__ import main
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/Mikado/__init__.py", line 29, in <module>
    from .utilities.log_utils import create_default_logger
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/Mikado/utilities/__init__.py", line 14, in <module>
    from . import dbutils
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/Mikado/utilities/dbutils.py", line 15, in <module>
    from sqlalchemy_utils import database_exists, create_database
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/sqlalchemy_utils/__init__.py", line 1, in <module>
    from .aggregates import aggregated  # noqa
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/sqlalchemy_utils/aggregates.py", line 372, in <module>
    from .functions.orm import get_column_key
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/sqlalchemy_utils/functions/__init__.py", line 1, in <module>
    from .database import (  # noqa
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/sqlalchemy_utils/functions/database.py", line 13, in <module>
    from ..expressions import explain_analyze
  File "/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/sqlalchemy_utils/expressions.py", line 4, in <module>
    from sqlalchemy.sql.expression import (
ImportError: cannot import name '_literal_as_text' from 'sqlalchemy.sql.expression' (/home/isaacvock/mambaforge/envs/mikado/lib/python3.9/site-packages/sqlalchemy/sql/expression.py)

A new sqlalchemy error! Fun. As this yaml file was part of a yet to be accepted pull request though, I realized that some of the changes made to the existing environment.yaml file might be dependent on other changes in the pull request, so next I tried to use the existing environment.yaml file on main branch of the repo.

Strategy 4: Existing environment.yaml file

Code: mamba env create -f environment.yaml

I used the following environment.yaml file from the main branch of the Github repo, though I added mikado to the list of dependencies:

name: mikado
channels:
  - bioconda
  - conda-forge
  - defaults
  - anaconda
dependencies:
  - biopython>=1.78
  - cython>=0.29.13
  - docutils
  - drmaa
  - hypothesis
  - msgpack-python>=1.0.0
  - networkx>=2.3
  - numpy>=1.17.2
  - pandas>=1.0
  - pip
  - pyfaidx>=0.5.8
  - samtools>=1.11
  - htslib>=1.11
  - pysam>=0.15.3
  - python>=3.6,<3.10
  - pyyaml>=5.1.2
  - scipy>=1.3.1
  - gmap==2021.08.25
  - snakemake-minimal>=5.7.0
  - sqlalchemy>1.4.0,<2
  - sqlalchemy-utils==0.34.1
  - sqlite
  - tabulate>=0.8.5
  - wheel
  - pytest>=5.4.1
  - python-rapidjson>=1.0
  - marshmallow==3.14.1
  - marshmallow-dataclass==8.5.3
  - typeguard>=2.9.1
  - conda-forge::toml>=0.10.0
  - bioconda::pyfaidx>=0.5.8
  - mikado

The installation proceeds without error.

I got the same error message when running mikado --help as with Strategy 3

Since this was a sqlalchemy problem again, I tried Strategy 3 plus the exact version pinning from Strategy 2

Strategy 5: Strategy 3 + Strategy2

Code: mamba env create -f environment.yaml

Here is the yaml file I used, same as Strategy 3 but with pinned sqlalchemy version

name: mikado
channels:
  - bioconda
  - conda-forge
  - defaults
  - anaconda
dependencies:
  - biopython>=1.78
  - cython>=0.29.13
  - docutils
  - drmaa
  - hypothesis
  - msgpack-python>=1.0.0
  - networkx>=2.3
  - numpy>=1.17.2
  - pandas>=1.0
  - pip
  - pyfaidx>=0.5.8
  - samtools>=1.11
  - htslib>=1.11
  - pysam>=0.15.3
  - python>=3.6,<3.10
  - pyyaml>=5.1.2
  - scipy>=1.3.1
  - gmap==2021.08.25
  - snakemake-minimal>=5.7.0
  - sqlalchemy=1.4.46
  - sqlalchemy-utils==0.34.1
  - sqlite
  - tabulate>=0.8.5
  - wheel
  - pytest>=5.4.1
  - python-rapidjson>=1.0
  - marshmallow==3.14.1
  - marshmallow-dataclass==8.5.3
  - typeguard>=2.9.1
  - conda-forge::toml>=0.10.0
  - bioconda::pyfaidx>=0.5.8
  - mikado

When running mikado --help, got the same error as in Strategy 3 and 4.

Strategy 6: mamba + pip

Decided to use mamba to try and install mikado via the pip route discussed in the mikado README

Code:

mamba create -c anaconda --name pip pip
conda activate pip
pip3 install mikado

Installation failed with following error:

Collecting mikado
  Using cached Mikado-2.3.4.tar.gz (24.7 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [15 lines of output]
      Traceback (most recent call last):
        File "/home/isaacvock/mambaforge/envs/pip/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 351, in <module>
          main()
        File "/home/isaacvock/mambaforge/envs/pip/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 333, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/isaacvock/mambaforge/envs/pip/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-4icg44od/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 355, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-4icg44od/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-4icg44od/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in run_setup
          exec(code, locals())
        File "<string>", line 15, in <module>
      ModuleNotFoundError: No module named 'scipy._build_utils'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Which seems like the problem discussed in issue #444. which hasn't been officially addressed with a pull request yet.

The same error arises when installing with pip3 install mikado if run within the environments specified in Strategies 3 and 4.

Strategy 7: #443 + #265

After combing through some more issues, I wanted to try installing via the instructions given in a much older issue (#265), combined with the fixes implemented in a recent (though not yet merged) pull request (#443) from which I derived the environment specification used in several strategies discussed above.

Code:

git clone https://github.com/EI-CoreBioinformatics/mikado.git
cd mikado
git checkout fix_install
mamba env create -f environment.yml 
conda activate mikado2
python setup.py bdist_wheel
pip install dist/*whl

Installation succeeded but running mikado --help yielded the same plant.yaml error as in Strategy 2.

I am happy to provide any additional information or test additional strategies, and am grateful for any help that can be provided.

Best,
Isaac

@isaacvock isaacvock changed the title Unable to install mikado via multiple methods Unable to install mikado with mamba via multiple strategies Sep 1, 2023
@smallfishcui
Copy link

Hi,

This is the same with me. I have been trguggling for a month. I tried conda and pip on different machines and servers, and it didn't work. The package installed via conda create emply configuration file. And when I use the mashmallow version as suggested, it crashes.
Can someone please help?

thanks,
Cui

@StepanSaenko
Copy link

StepanSaenko commented Nov 2, 2023

For me it worked pip install --force-reinstall -v "typeguard==2.13.3" , and only then
pip install --force-reinstall -v "marshmallow==3.14.1"

I made it all the same way as you. Hope it will help

@isaacvock
Copy link
Author

Thank you for the suggestion, though unfortunately it still does not work for me. With the most promising, simple strategy (#2), there just seems to be a problem with the path that Mikado thinks it should find the example configuration files at. When I try to install mikado on the Windows subsytem for linux, the stated path does seem to exist and there are non-empty configuration files at the path, but perhaps there is a problem with how it deals with the mounted file system. On the shared linux system that I have tried to install it on (a university HPC cluster), the stated path to the configuration files does not actually exist, leading to the error message regarding "empty" configuration files. This seems similar to #431, though in that case the proposed solution was more dependency pinning, the likes of which I have already tried.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants