Error: No module named 'prodigy.models.dep'

Hi!

I’ve renamed the wheel to ‘prodigy-1.5.1-cp35.cp37-cp35m.cp37m-linux_x86_64.whl’
Installed it on a docker with Python 3.7.0 (Linux-4.9.93-linuxkit-aufs-x86_64-with-debian-9.5, spacy is installed and works)

It doesn’t matter if i run ‘prodigy’ or ‘python -m prodigy’ or ‘python3 -m prodigy’. I always get the following error:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/local/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/local/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/local/lib/python3.7/site-packages/prodigy/__init__.py", line 4, in <module>
    from . import recipes  # noqa
  File "/usr/local/lib/python3.7/site-packages/prodigy/recipes/__init__.py", line 4, in <module>
    from . import dep, ner, textcat, pos, compare, terms, generic, image  # noqa
  File "/usr/local/lib/python3.7/site-packages/prodigy/recipes/dep.py", line 7, in <module>
    from ..models.dep import DependencyParser, merge_arcs
ModuleNotFoundError: No module named 'prodigy.models.dep'

What am i doing wrong?

I think the problem is that the wheel was only built using Python 3.5 and 3.6, so all the compiled files are named specific to those versions. If you look at the directory in your site-packages, especially the .so files, you’ll see that they’re all called something with cp35 and cp36. You should be able to just rename those to cp37 as well. All those files are compatible with Python 3.7 – you just need to convince your Python to run them.

If it still doesn’t work, you might have to use a Python 3.6 environment in the meantime. Sorry about the confusion – we’ll definitely include Python 3.7 in the next build and I hope other tools will catch up and make this easier, too (I think Travis still doesn’t officially offer testing for Python 3.7?)

Thanks @ines
Changing the files names didn’t work so i’ve set up a 3.6 environment which works fine.

I just downloaded 1.5.1; since this shows as solved, is there another build available that could run on 3.7?

No, not yet – but we’ll be building Python 3.7 for the next release!

@ines

I am running into a similar issue related to this. My error is

I have tried building this on a python 3.6.6 and 3.7.3 environments. My OS is windows 64 bit but when I install the python 64 which is amd it says my prodigy wheel does not fit my environment even though I have aligned it with the details in https://github.com/MacPython/wiki/wiki/Spinning-wheels.

When I install the 64 bit python, I cannot get past the ImportError: DLL load failed: The specified module could not be found. when running prodigy or python -m spacy download en_core_web_sm

@adingler711 Thanks for the update. But just to confirm, it did work for you with 3.6 (as described in your other thread), just not with 3.7? And you’re also using the latest version, right?

The Windows wheel for Python should include the compiled files for 3.5, 3.6 and 3.7 now, so it’s definitely confusing that it’s not working as expected on 3.7. I can have a look again – maybe there is something we have to do specifically for packaging on 3.7 :thinking:

I got it installed with python 3.7 but ran into this same error. I based on a previous post No module named prodigy.core I was assuming it was because I was using python 3.7 so I tried it with 3.6 and ran into the same problem.

@inesI think I finally got it working.

image

I ended up using anaconda3 and installing the 64 bit version. It is weird that it does not work when I install base python3.7 without anaconda and I get the ImportError: DLL load failed: The specified module could not be found. error.