Prodigy on Python 3.9

I recently updated my computer and have Python 3.9 installed. When I went to install the :sparkles: newly downloaded prodigy wheel :sparkles:, I got that pesky "is not supported on this platform" error when trying to install. Looking at the wheel filename, it looks like the wheel might be built for 3.6, 3.7, and 3.8. I can always put 3.8 in my virtualenv, but curious if there's anything I can do to continue using 3.9 in the existing virtualenv I have or if the prodigy team has plans to extend the build for 3.9 anytime soon.

But of course, if I'm misinterpreting the error message, any other suggestions would be welcome too!

Here's info on my system
>>> import distutils.util
>>> distutils.util.get_platform()
'macosx-10.15-x86_64'

And here's the output when I go to install Prodigy...

pipenv install -v ./prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl 
Installing ./prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl...
Installing package: ./prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl
Writing supplied requirement line to temporary file: './prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl'
Installing 'prodigy'
â ´ Installing prodigy...$ ['/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/bin/pip', 'install', '--verbose', '--upgrade', '--exists-action=i', '-r', '/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pipenv-_w67cwby-requirements/pipenv-4iazh3d2-requirement.txt', '-i', 'https://pypi.org/simple']
Using source directory: '/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/src'
Error:  An error occurred while installing ./prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl!
Error text: Using pip 20.2.4 from /Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip (python 3.9)
Non-user install by explicit request
Created temporary directory: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-ephem-wheel-cache-s73viyjl
Created temporary directory: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Initialized build tracking at /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Created build tracker: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Entered build tracker: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Created temporary directory: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-install-uptbna16
Exception information:
Traceback (most recent call last):
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 228, in _main
    status = self.run(options, args)
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 323, in run
    requirement_set = resolver.resolve(
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py", line 173, in resolve
    requirement_set.add_requirement(req)
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/req/req_set.py", line 104, in add_requirement
    raise InstallationError(
pip._internal.exceptions.InstallationError: prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl is not a supported wheel on this platform.
Removed build tracker: '/private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji'

ERROR: prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl is not a supported wheel on this platform.

Using pip 20.2.4 from /Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip (python 3.9)
Non-user install by explicit request
Created temporary directory: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-ephem-wheel-cache-s73viyjl
Created temporary directory: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Initialized build tracking at /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Created build tracker: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Entered build tracker: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji
Created temporary directory: /private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-install-uptbna16
Exception information:
Traceback (most recent call last):
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 228, in _main
    status = self.run(options, args)
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 323, in run
    requirement_set = resolver.resolve(
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py", line 173, in resolve
    requirement_set.add_requirement(req)
  File "/Users/dmalmgren/.virtualenvs/econudge-calculator-KxPmL1v-/lib/python3.9/site-packages/pip/_internal/req/req_set.py", line 104, in add_requirement
    raise InstallationError(
pip._internal.exceptions.InstallationError: prodigy-1.10.5-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_15_x86_64.whl is not a supported wheel on this platform.
Removed build tracker: '/private/var/folders/tx/xb88fln971s3jzzzmw5f7_f80000gp/T/pip-req-tracker-mb9jboji'

✘ Installation Failed

For reference, I already renamed the file I got from the downloads page to match my operating system, so I do not believe this is an OS version issue like in other cases. But I reserve the right to be wrong about that haha

Hi! We're not yet able to provide Prodigy wheels for 3.9, because we first have to wait and make sure all our dependencies are available for Python 3.9, so we can build and test against them.

So for now, you'd have to keep using your 3.8 virtualenv for Prodigy. We'll probably have 3.9 wheels ready for the next release.

OK. Thanks for the prompt reply @ines. Love what you all are up to and appreciate your support. Have a great weekend!

Is there any news about 3.9 wheel ? Thanks

3.9 wheels will be available for the next non-patch version and we already have them for then nightly release :slightly_smiling_face: ✨ Prodigy nightly: spaCy v3 support, UI for overlapping spans, improved feeds & more

Something else we've been planning: We want to provide a PyPi server that allows users to download Prodigy using pip install and their license key, and that will automatically select the best wheel for their platform. This means we'll be able to build more wheels. Building combined wheels is nice in theory, but changes to pip and setuptools mean that users may run into problems depending on their versions, and it's something we can't control. There's also a growing number of Python versions and platforms we want to support (e.g. Python 3.10 soon, the Apple M1, and so on) and we don't want people to have to choose their wheel manually or download huge files every time.

2 Likes

I just wasted a work day upgrading our Python projects to 3.9, only to learn at the very end of it that we need to stay on 3.8 because Prodigy hasn't been updated :frowning:

Aw, sorry about that! It always takes us a while to update as new Python versions are released, because we first have to wait for all our dependencies to be available with wheels/releases for the new version. You can still run Prodigy in a separate virtual environment that runs 3.8 (e.g. using pyenv). The nightly also has wheels for 3.9 already: ✨ Prodigy nightly: spaCy v3 support, UI for overlapping spans & more

Just released v1.11, which includes a suite of wheels for Python 3.9 :slightly_smiling_face: You can now also download Prodigy via our PyPi server using your license key, which will automatically pick the best-matching wheel for your platform and Python version: https://prodi.gy/docs/install#pip

(This will also make it much easier to support more Python versions in the future, because we can simply add a new wheel and won't have to mess with the combined wheel builds anymore :tada:)

2 Likes