Installation error linux _get_module_details fails

Hello,

hope this finds you well. I wanted to upgrade prodigy from 1.9 to 1.10 on linux (ubuntu 18.04). I uninstalled prodigy 1.9 and installed 1.10 pip install prodigy-1.10*.whl

Now, prodigy seems to broken. Each time I try to call prodigy, I get the following error

$ prodigy --help
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.6/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/prodigy/__init__.py", line 7, in <module>
    from . import recipes
  File "/home/ubuntu/.local/lib/python3.6/site-packages/prodigy/recipes/__init__.py", line 4, in <module>
    from ..deprecated import recipes  # noqa
  File "/home/ubuntu/.local/lib/python3.6/site-packages/prodigy/deprecated/recipes.py", line 10, in <module>
    from ..components.loaders import get_stream
  File "cython_src/prodigy/components/loaders.pyx", line 10, in init prodigy.components.loaders
  File "/home/ubuntu/.local/lib/python3.6/site-packages/prodigy/app.py", line 41, in <module>
    del _uvicorn_log_config["loggers"][""]
KeyError: ''

I tried to uninstall prodigy 1.10 and re-install 1.9 but I keep running into the same error.

Any suggestion?

Thanks in advance,

Cyril

I am running into the same issue. I rebuild my docker container regularly, but cannot get it to work. it might be an issue with one of the libraries that is being installed during prodigy installation, but thats just a guess.

I'm running into the same error during prodi.gy install on 1.9.5, 1.9.7, and 1.10.1. Prodigy worked prior to rebuilding my container, which makes me think its a library issue.

Ok, i fixed the issue on 1.9.5. It seems that uvicorn_log_config schema has changed. Just deleting the [""] at the end of line 37 in prodigy/app.py allows it to load.

I had been working through a seemingly unrelated issue to port 8080 not binding within the container. It might be related to this somehow as I downgraded docker to a working version, but still cant get port binding to work.

1 Like

Yup, downgrading uvicorn to 0.11.5 fixes this issue.

pip install uvicorn==0.11.5

1 Like

Thanks for looking into this! I think uvicorn just released a new version – we'll update the pin for the next version and adjust the log config. (The new uvicorn release actually includes a bugfix that's relevant for us, so we should probably just require the latest version in Prodigy.)

Thanks @elYud and @ines!

Cheers!

Just released Prodigy v1.10.2, which upgrades to the latest uvicorn and should fix this problem, including the other side-effects with third-party logging!

1 Like