# Installation with UV Error

**URL:** <https://support.prodi.gy/t/installation-with-uv-error/7422>\
**Category:** Uncategorized\
**Tags:** solved\
**Created:** [October 24, 2024, 6:11pm UTC](https://support.prodi.gy/t/installation-with-uv-error/7422 "2024-10-24T18:11:27Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![zkl](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/zkl/32/4392_2.png) [@zkl](https://support.prodi.gy/u/zkl)\
**Post date:** [October 24, 2024, 6:11pm UTC](https://support.prodi.gy/t/installation-with-uv-error/7422/1 "2024-10-24T18:11:27Z")

</div>

Hi! I'm having trouble installing prodigy with the uv package installer ([uv: Python packaging in Rust](https://astral.sh/blog/uv)).

Here's the specific error:  
error: HTTP status client error (422 Unprocessable Entity) for url ([https://download.prodi.gy/index/bpemb](https://download.prodi.gy/index/bpemb))

I have the --extra-index-url and my prodigy version in requirements.txt  
--extra-index-url [https://XXXX-XXXX-XXXX-XXXX@download.prodi.gy/index](https://XXXX-XXXX-XXXX-XXXX@download.prodi.gy/index)  
prodigy==1.15.3

Anyone have success installing prodigy with uv? uv is miles faster than pip and it would be awesome if I could use it!

---

<div class="post-metadata">

**Author:** ![magdaaniol](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/magdaaniol/32/2787_2.png) [@magdaaniol](https://support.prodi.gy/u/magdaaniol)\
**Post date:** [October 29, 2024, 11:21am UTC](https://support.prodi.gy/t/installation-with-uv-error/7422/2 "2024-10-29T11:21:11Z")

</div>

Hi @zkl,

I haven't used `uv` much yet but is seems that `--extra-index-url` is handled a little bit differently from the way `pip` does the search. It's defenitely more secure but as per `uv` [docs](https://docs.astral.sh/uv/guides/integration/alternative-indexes/) this means that libraries might not be found for some private indices. Also `--extra-index-url` is deprecated from `uv` CLI.

What I found though is that `--find-links` option does work.  
So assuming your `requirements.txt` looks like this:

```python
-f https://XXXX-XXXX-XXXX-XXXX@download.prodi.gy/index
prodigy==1.15.3

```

You should be able to install with `uv` like so:

```python
python -m uv pip install -r requirements.txt

```

---

<div class="post-metadata">

**Author:** ![nix411](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/nix411/32/2982_2.png) [@nix411](https://support.prodi.gy/u/nix411)\
**Post date:** [January 31, 2025, 10:31am UTC](https://support.prodi.gy/t/installation-with-uv-error/7422/3 "2025-01-31T10:31:45Z")

</div>

Are there any updates on `uv` support? Preferably `prodigy` and be added to `pyproject.toml`.

---

<div class="post-metadata">

**Author:** ![magdaaniol](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/magdaaniol/32/2787_2.png) [@magdaaniol](https://support.prodi.gy/u/magdaaniol)\
**Post date:** [February 3, 2025, 4:03pm UTC](https://support.prodi.gy/t/installation-with-uv-error/7422/4 "2025-02-03T16:03:24Z")

</div>

Hi @nix411,

You should be able install Prodigy using `uv` using the `--find-links` option. `--find-links` is needed because Prodigy is using custom package index.  
You should also be able to define `prodigy` as a dependency in a `pyproject.toml` e.g.:

```python
[project]
name = "your-project-name"
version = "0.1.0"
description = "Your project description"
requires-python = ">=3.8"
dependencies = [
    "prodigy"
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.metadata]
allow-direct-references = true

[tool.hatch.build.targets.wheel]
packages = ["uv/your_project_name"]

[tool.uv]
find-links = ["https://XXXX-XXXX-XXXX-XXXX@download.prodi.gy"]

```

Running `uv pip install -e .` should download Prodigy from our download server.  
Is there any particular issue you're running into when trying to install Prodigy with `uv`?

---

<div class="post-metadata">

**Author:** ![ysz](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ysz/32/3411_2.png) [@ysz](https://support.prodi.gy/u/ysz)\
**Post date:** [August 20, 2025, 10:46am UTC](https://support.prodi.gy/t/installation-with-uv-error/7422/5 "2025-08-20T10:46:33Z")

</div>

the correct secure way would be to have these in pyproject.toml

[[tool.uv.index]]

name = "prodigy"

url = "[https://download.prodi.gy](https://download.prodi.gy)"

ignore-error-codes = [422]

create .env like this

UV\_INDEX\_PRODIGY\_USERNAME=key-goes-here

and then

export $(cat .env | xargs)

uv add prodigy

#verify

uv run prodigy

---

<div class="post-metadata">

**Author:** ![it176131](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/it176131/32/3700_2.png) [@it176131](https://support.prodi.gy/u/it176131)\
**Post date:** [March 17, 2026, 7:54pm UTC](https://support.prodi.gy/t/installation-with-uv-error/7422/6 "2026-03-17T19:54:21Z")

</div>

Using `uv==0.10.4`, `python==3.13.2`, on Windows 11:

```python
# pyproject.toml
[[tool.uv.index]]
name = "prodigy"
url = "https://download.prodi.gy"
format = "flat" # needed as the prodigy index does not follow [PEP 503](https://peps.python.org/pep-0503/)

```

Ensure that you set the following environment variables:  
`UV_INDEX_PRODIGY_USERNAME=XXXX-XXXX-XXXX-XXXX # your license key`  
`UV_INDEX_PRODIGY_PASSWORD=XXXX-XXXX-XXXX-XXXX # yes, this is set to the same thing`

Tested using the command, `$ uv pip install prodigy` in a fresh environment.
