How to use manifest.yml correctly

Hello, everybody.

I kept getting this error in my skills.log file.

ModuleNotFoundError: No module named ‘caldav’

My manifest.yml file looked like this:

dependencies:
  python:
    - caldav

After reading some entries here on the forum, I discovered that running the command mycroft-pip install caldav worked. Additionally, it seems I no long need the manifest.yml file.

I’m wondering why it didn’t work to add the dependency in manifest.yml.

This method seems like it might be a workaround. Is it correct to do it this way?

Thank you,
Dan.

Hi Dan,

Is this for a Skill you’re developing locally?

The contents of your manifest.yml will be installed when the Skill gets installed. Mycroft won’t check that file for changes if it’s already installed on system. So if you’re editing the Skill on your machine you need to install those dependencies yourself like you’ve done using mycroft-pip install.

This is also why you’d want to keep it around - assuming you want others to use your Skill. It means that won’t need to perform a manual installation of these packages. So if you or someone else ran:

mycroft-msm install https://github.com/dans-account/dans-skill

Then the contents of your manifest would get installed automatically during Skill installation.

Hope that makes sense.

1 Like

Ah! OK, thank you. I was so confused. :joy:

It’s just a local skill. But who knows? Maybe one day I could make a something good enough for the marketplace.

1 Like