Prodigy executable error

I am getting the following error on a new installed conda env + prodigy:

❯ prodigy dataset my_set "A new dataset" --author Me        (ner_labeling_demo) 
Failed to execute process '/home/elyase/miniconda3/envs/ner_labeling_demo/bin/prodigy'. Reason:
exec: Exec format error
The file '/home/elyase/miniconda3/envs/ner_labeling_demo/bin/prodigy' is marked as an executable but could not be run by the operating system.

Debug information:

> python --version                                          (ner_labeling_demo) 
Python 3.6.2 :: Continuum Analytics, Inc.

>>> distutils.util.get_platform()

>>> prodigy.about.__version__

Thanks for the report – and sorry about that. Instead of prodigy, try using python -m prodigy, e.g.:

python -m prodigy dataset my_set "A new dataset" --author Me  

We should probably add this more prominently to the docs. This seems to be a Windows issue and we’re still thinking about the best way to solve this. We originally wanted to avoid adding Prodigy to the user’s path or shipping a “real” executable, so Prodigy currently only adds a prodigy executable which aliases prodigy to python -m prodigy – but somehow, this doesn’t seem to register properly on Windows.

Thanks, python -m prodigy instead of prodigy works. I would like to add that the error is happening on Linux and not only with prodigy but also with the spacy executable.

Thanks, that’s interesting. And yeah, we were using the same strategy for spaCy, which is why we recently changed the docs back to refer to python -m spacy everywhere.

It’s kinda ugly, but it really is the safest way to ensure the correct installation is run, and to prevent all sorts of random environment and path problems (and frustrated users). For now, if you want nicer commands, you can always just set you own alias for prodigy=python -m prodigy and spacy=python -m spacy.

I think I found the reason. I am using the fish shell. Under bash everything works as expected. Thanks for the useful suggestions.

1 Like