FAQ Installation

We're starting to accumulate common FAQ's on installing Prodigy and getting started based on past user posts. Feel free to add comments if you have any suggestions!

ERROR: No matching distribution found for prodigy

What version of Python are you running?

Run python --version or python3 --version to check.

As of Prodigy v1.12.0, Prodigy has support for Python 3.8, 3.9, 3.10, and 3.11 (new for v1.12.x).

If not, be sure to install a unique virtual environment and run which python or which python3 to ensure you're pointing at your correct environment.

If you're running with wheel files, make sure your Operating System aligns with the wheel file name, or else you'll get is not a supported wheel on this platform error (see next FAQ).

About the 'is not a supported wheel on this platform' error

Double-check that you’ve downloaded the correct wheel and make sure your version of pip is up to date. If it still doesn’t work, check if the file name matches your platform (distutils.util.get_platform()) and rename the file if necessary. For more details, see this article on Python wheels. Essentially, Python wheels are only archives containing the source files – so you can also just unpack the wheel and place the contained prodigy package in your site-packages directory.

Client Error: Forbidden for url: https://download.prodi.gy/ for URL https://****@download.prodi.gy

This means that your license may be incorrectly typed or has expired.

Email us at contact@explosion.ai if you have questions.

I need a wheel file for an old version of Prodigy

With your license key, in a browser run https://xxxx-xxxx-xxxx-xxxx@download.prodi.gy and you should be able to select the wheel file per the version, OS, and Python version.

Mac Intel issues

I tried to upgrade -- but it didn't work

If you already have Prodigy installed in your environment, include the --upgrade flag like:

pip install --upgrade prodigy -f https://XXXX-XXXX-XXXX-XXXX@download.prodi.gy

Making the 'prodigy' CLI command work

On installation, Prodigy will set up the alias commands prodigy and pgy. This should work fine and out-of-the-box on most macOS and Linux setups. If not, you can always run the commands by prefixing them with python -m, for example: python -m prodigy stats. Alternatively, you can create your own alias, and add it to your .bashrc to make it permanent:

alias prodigy="python -m prodigy"

On Windows you can also create a Windows activation script as a .ps1 file and run it in your environment, or add it to your PowerShell profile. See this thread for more details.

Function global:pdgy { python -m prodigy $args}
Function global:prodigy { python -m prodigy $args}
Function global:spacy { python -m spacy $args}

I see 'prodigy: command not found'

First, check whether python -m prodigy works. If it does, there might be a problem with your PATH variable. This happens more often with conda environments and on Windows. See here for workarounds – however, executing with python -m might be easier than resolving the problem:

python -m prodigy stats

If python -m prodigy doesn’t work, check whether the correct environment is activated, and check whether Prodigy is installed. If you’re using the system Python rather than an environment, you might need to run python3 rather than python. If the first thing you see is a SyntaxError, you’re most likely running Prodigy with Python 2 instead of Python 3.

How to add Prodigy to your requirements.txt?

The Prodigy download server also exposes a package index endpoint via download.prodi.gy/index that you can use with --extra-index-url. This lets you include Prodigy in your requirements.txt by adding a line at the top of the file:

requirements.txt

--extra-index-url https://XXXX-XXXX-XXXX-XXXX@download.prodi.gy/index/prodigy>=1.11.0,<2.0.0

I need to install Prodigy airgapped from the internet

First install all of Prodigy’s dependencies separately then install the Prodigy wheel with --no-deps. As of v1.14.7, these are the dependencies:

spacy>=3.1.1,<3.8.0
spacy-llm>=0.4.0,<0.6.0
wasabi>=1.1.2
srsly>=2.0.0,<3.0.0
catalogue
radicli>=0.0.15
# Third-party libraries
toolz>=0.8.2,<1.0.0
requests
pydantic>=1.10.8,<3.0
fastapi>=0.65.1,<0.103.0
aiofiles
uvicorn>=0.13.3,<0.19.0
peewee>=3.12.0,< 3.17.0
cachetools>=4.2
pyjwt<3.0.0,>=2.0.0
cloudpathlib>=0.10.0
uvloop<=0.14.0; python_version < "3.7" and platform_system != "Windows"
jinja2
python-dotenv>=0.21.1,<2.0.0
typeguard>=3.0.2,<4.0
tqdm>=4.38.0,<5.0.0
typing-extensions!=4.7.0,>=4.5.0

To make this easier, you might want to check out .pex files . We use them a lot internally and they essentially package a whole Python environment into a single file. So you can install Prodigy and whatever else you need locally, create a .pex, copy that single file (!) over to your airtight machine and then execute it instead of the Python interpreter. (The only thing your machine needs is a system Python installation). For example:

your_environment.pex -m prodigy stats

Installing via pypi without https certificate