Prodigy installation breaking on Python3.6

Installing the prodigy .whl on both mac and linux conda environments causes it to crash with Python 3.6.12. The problem appears to be with the installation of uvloop which is a dependency. This wasn't happening before but started happening 2 days before probably with the new uvloop release: Release v0.15.0 · MagicStack/uvloop · GitHub. The reason I require Prodigy on Python 3.6 is because I am using the AWS environments which currently only support Python 3.6. Please look into this. Thanks

python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_4/6__097dj5bn91trx9tdgy8gh0000gp/T/pip-install-jrhfgq2v/uvloop_52b016de02c04b3bba8fdb3d5fe54539/setup.py'"'"'; file='"'"'/private/var/folders/_4/6__097dj5bn91trx9tdgy8gh0000gp/T/pip-install-jrhfgq2v/uvloop_52b016de02c04b3bba8fdb3d5fe54539/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/_4/6__097dj5bn91trx9tdgy8gh0000gp/T/pip-pip-egg-info-rcuzfblx
cwd: /private/var/folders/_4/6__097dj5bn91trx9tdgy8gh0000gp/T/pip-install-jrhfgq2v/uvloop_52b016de02c04b3bba8fdb3d5fe54539/
Complete output (5 lines):
Traceback (most recent call last):
File "", line 1, in
File "/private/var/folders/_4/6__097dj5bn91trx9tdgy8gh0000gp/T/pip-install-jrhfgq2v/uvloop_52b016de02c04b3bba8fdb3d5fe54539/setup.py", line 5, in
raise RuntimeError('uvloop requires Python 3.7 or greater')
RuntimeError: uvloop requires Python 3.7 or greater

Thanks for the heads-up! That's kind of annoying :disappointed: uvloop isn't actually a direct dependency of Prodigy and all of our dependencies in Prodigy are usually pinned to a specific version range, either directly, or via the other packages that depend on them.

Here's the current requirements:

# Our dependencies
spacy>=2.3.0,<2.4.0
wasabi>=0.4.2,<1.1.0
srsly>=0.0.6,<1.1.0
catalogue>=0.0.8,<1.1.0
# Other dependencies
toolz>=0.8.2,<=1.0.0
plac>=0.9.6,<1.2.0
requests>=2.0.0,<3.0.0
starlette>=0.12.9,<=0.12.9
pydantic>=1.0.0,<2.0.0
fastapi>=0.44.0,<0.45.0
aiofiles
uvicorn>=0.11.6,<0.12.0
peewee>=3.12.0,<4.0.0
cachetools>=2.1.0
pyjwt>=1.6.1,<2.0.0

I'll look into what pulls in uvloop here. Do you see that somewhere in your logs?

In the meantime, you could just install Prodigy with --no-deps and install the dependencies manually, and downgrade uvloop.

Update: It looks like the problem is caused by uvicorn, which included an unpinned dependency for uvloop:

We'll include an updated pin in Prodigy, just in case. In the meantime, the best workaround would be:

pip install uvloop==0.14.0
pip install prodigy*.whl

Thanks for the workaround @ines. It works