Mac install failing

for people looking for answers on OSX Mojave, you might be missing headers which are no longer installed under /usr/include/ by default ... try the following if you suspect that

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
1 Like

Pulling my hair out on this one :frowning:
Tried everything mentioned in this thread

used util to get my current version and changed the file name
prodigy-1.10.1-cp35.cp36-cp35m.cp36m-macosx_10_9_x86_64.whl

Nothing worked until I saw the line of spacy pip install:
spacy-2.0.18-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl

cp37-cp37m was missing in my prodigy whl file name :slight_smile:

So my advice would be
1/ install spacy via pip
2/ then grab the spacy whl file name except spacy..
3/ Edit prodigy whl file name like prodigy-1.10.1.<paste_>.whl
4/ pip install *.whl

Hope this helps!

1 Like

Hi, I'm also struggling with this. I'm trying to install prodigy in a virtualenv with python3.8. Using distutils, I got platform macosx-11-x86_64 so I renamed the wheel file to prodigy-1.10.7-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx-11-x86_64.whl. Still get the same error 'is not a supported wheel on this platform', same if I just do pip install *.whl.

So I made a new virtualenv and installed all the packages suggested above in the requirements.txt file and unzipped the file, then moved the prodigy folder into the site-packages folder of my virtualenv.

This sort of worked, with python -m prodigy I could progress, but had to manually tell the system prefs I wanted to open files (mostly cpython if I remember correctly) and had to install syrsly and wasabi. Latest step I got stuck with is peewee, which is giving the error "AttributeError: module 'peewee' has no attribute '_ConnectionState'" .

To be honest I don't trust my manual install much and would much rather I got the pip install working :).

It's a bit of a lengthy write-up, but I wanted to give you a complete picture of the things I've tried. Thanks in advance.

This is very strange, because if you're on a Mac, you typically shouldn't even need to rename the wheel file for pip to accept it (unless you're on an older version than the one used to compile the wheel, if I remember correctly). The fact that it worked by copying the files also indicates that the compatibility is not an issue and the main problem is that pip thinks it can't install the file.

Which version of pip and setuptools are you running? And does it help to upgrade it? It's easy to end up with an older version here and there have been significant changes over time that can affect the wheel installation.

Hi @ines, I've got pip version 21.0.1 and setuptools 49.2.1, I upgraded pip but will check setuptools version.

Have updated setuptools to 54.1.2, still same error with pip install *.whl. Mysterious indeed :slight_smile:
Try a new virtualenv just for the hell of it?

This worked a treat for me, I'm on MacOS Big Sur 11.2, with the M1 processor

I pip installed spacy, watched what the spacy wheel was called and used that naming for the prodigy wheel. Changed the filename from

prodigy-1.10.7-cp36.cp37.cp38-cp36m.cp37m.cp38-macosx_10_14_x86_64.whl

to

prodigy-1.10.7-cp39-cp39-macosx_10_9_x86_64.wh

And installed with pip3 install ML/prodigy*.whl

@macaque did you give a go?

:boom:

[UPDATE]

Ran into issues with Python 3.9 (as mentioned here: Annotating dependecies for very long sentences - #5 by APagano) so downgraded to 3.8. Had to pip install spacy again to see what filename that used, this was what worked for me now:

prodigy-1.10.7-cp38-cp38-macosx_10_9_x86_64.whl

1 Like

thanks for the tip @Morgan will try now.

[UPDATE]

@Morgan it worked, you've made my day. prodigy stats shows all is installed.

1 Like

@morgan Thanks for the update! That's super interesting, because it indicates that your version of pip somehow doesn't process the multi-version tags correctly :thinking: Which versions of pip/setuptools/wheel were you running?

(For spaCy, we build one wheel for every platform + Python version combination and let pip pick the wheel. For Prodigy, that's less practical because we don't want people to have to choose between 6+ or soon 8+ different files. The multi-version naming should solve this, but it looks like there are some circumstances where pip doesn't like it anymore...)

1 Like

Interesting...

pip -V : pip 21.0.1

setuptools: doesn't look like its installed...this is a new machine, maybe this was the issue?

wheel : 0.36.2