iiasa / message-ix-models

Tools for the MESSAGEix-GLOBIOM family of models
https://docs.messageix.org/models
Apache License 2.0
17 stars 33 forks source link

message_data ModuleNotFoundError leading to not unusable #66

Closed pkufubo closed 2 years ago

pkufubo commented 2 years ago

Same as #37, but more fatal. In my tests, the entire command line seemed to be unavailable due to the absence of the module message_data. I have tried 'mix-models --help','mix-models cd-links --help'.

I think maybe some necessay comand is related to message_data, even defined in message_data.

7e116d4fc79a761c28beb8362dc9550
khaeru commented 2 years ago

even defined in message_data

This is correct; the CD-LINKS project codes are in the proprietary message_data repo.

Without message_data, one should see the following commands available:

$ mix-models
message_data is not installed or cannot be imported

  File "/home/khaeru/vc/iiasa/models/message_ix_models/cli.py", line 113, in <module>
    import message_data.cli

ModuleNotFoundError: No module named 'message_data'

Usage: mix-models [OPTIONS] COMMAND [ARGS]...

  Command-line interface for MESSAGEix-GLOBIOM model tools.

  Every tool and script in this repository is accessible through this
  CLI. Scripts are grouped into commands and sub-commands. For help on
  specific (sub)commands, use --help, e.g.:

          mix-models cd-links --help
          mix-models cd-links run --help

  The top-level options --platform, --model, and --scenario are used by
  commands that access specific message_ix scenarios; these can also be
  specified with --url.

  For more information, see
  https://docs.messageix.org/projects/models2/en/latest/cli.html

Options:
  --url ixmp://PLATFORM/MODEL/SCENARIO[#VERSION]
                                  Scenario URL.
  --platform PLATFORM             Configured platform name.
  --model MODEL                   Model name for some commands.
  --scenario SCENARIO             Scenario name for some commands.
  --version INTEGER               Scenario version.
  --local-data PATH               Base path for local data.
  -v, --verbose                   Print DEBUG-level log messages.
  --help                          Show this message and exit.

Commands:
  export-test-data  Prepare data for testing.
  res               MESSAGEix-GLOBIOM reference energy system (RES).
  techs             Export metadata to technology.csv.

These commands (e.g. mix-models techs) all do work and are usable.

With message_data, there is a larger number of commands available, e.g. mix-models cd-links. However, if one attempts to run those commands without message_data installed, one does get this "Error: No such command". In short, that is expected behaviour.

I do note that the documentation at https://docs.messageix.org/projects/models/en/latest/cli.html#top-level-options-and-commands gives the longer list (including message_data) instead of the shorter one. We should clearly explain that there in the documentation. However, improvements to the docs will be part of a fix for #37, so this issue is strictly a duplicate.

gorkemgungormetu commented 1 year ago

I also wanted to try out the reference energy system model but I have the same problem. This has also changed the output of the message-ix show-versions command as below:

message_data is not installed or cannot be imported

ixmp:        3.7.0
message_ix:  3.7.1.dev16+g6dee23a
message_ix_models: 2023.7.26
message_data: None

click:       8.1.3
dask:        2023.6.0
genno:       installed
graphviz:    None
jpype:       1.4.1
… JVM path:  C:\Program Files\Java\jre1.8.0_351\bin\server\jvm.dll
openpyxl:    3.1.2
pandas:      2.0.2
pint:        0.22
xarray:      2023.5.0
yaml:        6.0

iam_units:   installed
jupyter:     installed
matplotlib:  3.7.0
plotnine:    None
pyam:        1.9.0

GAMS:        43.4.0

python:      3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 17:59:51) [MSC v.1935 64 bit (AMD64)]
python-bits: 64
OS:          Windows
OS-release:  10
machine:     AMD64
processor:   AMD64 Family 23 Model 17 Stepping 0, AuthenticAMD
byteorder:   little
LC_ALL:      None
LANG:        None
LOCALE:      ('Turkish_Turkey', '1254')

It would be nice to install message_data otherwise the output could be perceived as corrupt data.

khaeru commented 1 year ago

It would be nice to…

@gorkemgungormetu I think you probably want to read and +1 the comment at https://github.com/iiasa/message-ix-models/issues/37#issuecomment-996803988, which says something similar. Notice that the current issue is closed.