OSeMOSYS / otoole

OSeMOSYS Tools for Energy
https://otoole.readthedocs.io
MIT License
23 stars 17 forks source link

[Bug]: Generation of RES on Windows #204

Closed trevorb1 closed 10 months ago

trevorb1 commented 10 months ago

The Issue

As flagged by @olejandro in this comment for the JOSS review, the generation of the RES is not working on Windows :(

Expected Behavior

After running otoole viz res ... command, a RES would be generated

Steps To Reproduce

  1. install otoole with pip
  2. clone simplicity
  3. run otoole viz res csv data res.png config.yaml from the simplicity directory

Log output

Traceback (most recent call last):
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\pydot.py", line 1923, in create  
    stdout_data, stderr_data, process = call_graphviz(
                                        ^^^^^^^^^^^^^^
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\pydot.py", line 132, in call_graphviz
    process = subprocess.Popen(
              ^^^^^^^^^^^^^^^^^
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\subprocess.py", line 1538, in _execute_child   
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Scripts\otoole.exe\__main__.py", line 7, in <module>
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\otoole\cli.py", line 318, in main
    args.func(args)
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\otoole\cli.py", line 120, in data2res
    create_res(input_data, resfile)
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\otoole\visualise\res.py", line 211, in create_res
    draw_graph(graph, path_to_resfile)
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\otoole\visualise\res.py", line 240, in draw_graph
    image = dot_graph.create(prog="dot", format=image_format)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\trevo\miniconda3\envs\otoole-pip\Lib\site-packages\pydot.py", line 1933, in create  
    raise OSError(*args)
FileNotFoundError: [WinError 2] "dot" not found in path.

Operating System

Windows

What version of otoole are you running?

1.1.0

Possible Solution

No response

Anything else?

No response