Back into Mycroft after a year off, skills no longer load

Re-installed Mycroft-core on Linux after a year and have spent the last few days wading through errors. It appears there is a show stopper.
When I start-mycroft.sh debug, it loads fine and starts voice. it then Logs an error loading each and every skill in /opt/mycroft/skills.

The error is has no attribute ‘config’.

My current hypothesis is that the storage for skills attributes has change in an interim update and the old format is unreadable. There is still a skills folder in /opt/mycroft/skills but there is now a set of links in ~…/mycroft-core/mycroft/skills.

Would it thus be logical to rebuild mycroft-core with the concommittant removal of /opt/mycroft/skills ?

Another symptom of the situation is as follows: Contrary to the documentation, mycroft does NOT state the 6 char. pairing code at the end of installation. The last time I installed Mycroft (a year ago), you had to go to home.mycroft.com to get that, which has now changed to home.mycroft.ai.

Regards, Brian.

You probably need to re-run dev_setup.sh

I have done so three times.
Actually, deleted and re-cloned a fresh mycroft-core from git. This results in a complete refresh of the .conf files. However, this does not overwrite the skills in /opt/mycroft/skills.

I was assuming that reloading mycroft-core explicitly ran dev_setup.sh.

Re-ran the mycroft-core install.
Then dev_setup.sh. Crashed with “No such requirements/requirements.txt”. Re-ran again and this time it did a complete rebuild of mimic with no errors at all (lots of warnings).

Running start-mycroft.sh with renewed hope is now beginning to make me feel like einstein’s idiot. The result was exactly the same as before - cannot load any skills. I am more convinced that my pairing account is corrupt, or that the documentation is incorrect. That is what caused me to stop using mycroft a year ago.

In desperation, randomly entering :commands in the debug console finally had a result.
Entering :skills caused the console to crash, leaving the following terminal text:

Starting cli
2020-05-19 12:04:52.687 | ERROR    | 28405 | mycroft.configuration.config:__init__:154 | RequestException fetching remote location: 
2020-05-19 12:04:52.727 | ERROR    | 28405 | mycroft.configuration.config:__init__:174 | Failed to fetch remote configuration: TypeError("'str' object does not support item assignment",)
Traceback (most recent call last):
  File "/home/brian/mycroft-core/mycroft/configuration/config.py", line 159, in __init__
    setting["location"] = location
TypeError: 'str' object does not support item assignment
2020-05-19 12:04:52.901 | INFO     | 28405 | mycroft.messagebus.load_config:load_message_bus_config:33 | Loading message bus configs
2020-05-19 12:04:52.911 | ERROR    | 28405 | mycroft.messagebus.client.client:on_error:81 | === ConnectionRefusedError(111, 'Connection refused') ===
Traceback (most recent call last):
  File "/home/brian/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_app.py", line 254, in run_forever
    proxy_type=proxy_type)
  File "/home/brian/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_core.py", line 220, in connect
    options.pop('socket', None))
  File "/home/brian/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 120, in connect
    sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
  File "/home/brian/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 190, in _open_socket
    raise err
  File "/home/brian/mycroft-core/.venv/lib/python3.5/site-packages/websocket/_http.py", line 170, in _open_socket
    sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
2020-05-19 12:04:52.913 | ERROR    | 28405 | mycroft.messagebus.client.client:on_error:88 | Exception closing websocket: ConnectionRefusedError(111, 'Connection refused')
2020-05-19 12:04:52.914 | WARNING  | 28405 | mycroft.messagebus.client.client:on_error:91 | Message Bus Client will reconnect in 5 seconds.

Traceback (most recent call last):
  File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/brian/mycroft-core/mycroft/client/text/__main__.py", line 71, in <module>
    main()
  File "/home/brian/mycroft-core/mycroft/client/text/__main__.py", line 65, in main
    curses.wrapper(gui_main)
  File "/usr/lib/python3.5/curses/__init__.py", line 94, in wrapper
    return func(stdscr, *args, **kwds)
  File "/home/brian/mycroft-core/mycroft/client/text/text_client.py", line 1316, in gui_main
    if handle_cmd(line[1:]) == 1:
  File "/home/brian/mycroft-core/mycroft/client/text/text_client.py", line 1145, in handle_cmd
    scr.get_wch()  # blocks
_curses.error: no input

Sorry to hear about these issues.

To make a clean re-install I suggest using the

./dev_setup.sh --clean

command, this will remove the skills and the .mycroft folder as well as any mycroft related files in the tmp directory. In addition to this you may want to run

rm -rf .venv

in the mycroft-core folder to remove the mycroft virtual environment as well.

After these two commands run the ./dev_setup.sh script again and you should have a completely fresh install.

We have a report of the error in the :skills command (here) but we haven’t been able to reproduce that error. Of interest would also be your OS and which version of python you are using. (python --version)

Thanks! I shall try this when I have finished my gardening for the day.
I am running Linux Mint 18.3 Sylvia 64bit kernel 4.15.0-91 Mate 1.18.0
Python 3.7.2

Thanks that’s interesting to know, the other report was also for Linux Mint…