# Installation steps

**URL:** <https://support.prodi.gy/t/installation-steps/1765>\
**Category:** Uncategorized\
**Tags:** install, solved, linux\
**Created:** [July 10, 2019, 7:54am UTC](https://support.prodi.gy/t/installation-steps/1765 "2019-07-10T07:54:51Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 10, 2019, 7:54am UTC](https://support.prodi.gy/t/installation-steps/1765/1 "2019-07-10T07:54:51Z")

</div>

I am trying to install Prodigy on a linux server (ubuntu).

in the PRODIGY\_README.html file under the installation section, it says:  
The download link lets you choose between Prodigy wheels for all supported platforms. It also includes the downloadable API documentation. You can install Prodigy by pointing pip to the local path of the respective wheel. Note that Prodigy currently requires **Python 3.5+** and the latest [**spaCy v2.1**](https://spacy.io/usage/v2).

does that mean i need to install spacy first?  
if yes, what link should i use?  
this one [https://spacy.io/usage](https://spacy.io/usage)

if the one above,  
should I use virtualenv or not?

are there any straight forward full installation steps document?

thank you

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [July 10, 2019, 8:41am UTC](https://support.prodi.gy/t/installation-steps/1765/2 "2019-07-10T08:41:26Z")

</div>

Hi! Prodigy is a Python library that depends on spaCy and when you install it from the wheel, it will be installed just like any other Python package. So spaCy and all its other dependencies will be installed automatically. (We just mention the spaCy version in the docs so it's clear which version it will be installing and using.) The only thing you have to install yourself are the spaCy models you want to use. For example:

```bash
python -m spacy download en_core_web_sm

```

> [@omrison](#):
>
> should I use virtualenv or not?

That's up to you, really. I always recommend using a virtualenv, because it makes working with different Python environments so much easier and you can always delete it and start over if something goes wrong. But some people prefer other environment management solutions, and that's fine, too. Just set up your Prodigy environment however you normally set up your Python environments.

---

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 10, 2019, 8:49am UTC](https://support.prodi.gy/t/installation-steps/1765/3 "2019-07-10T08:49:54Z")

</div>

thank you.  
how do i start the web interface?  
i could not find a way in the installation guide

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [July 10, 2019, 8:52am UTC](https://support.prodi.gy/t/installation-steps/1765/4 "2019-07-10T08:52:20Z")

</div>

This depends on what you want to run – for example, a recipe to label named entitiies with a model in the loop, or a recipe to

The "First steps" guide is a good place to start:

> **[Prodigy 101 – everything you need to know · Prodigy · An annotation tool for...](https://prodi.gy/docs/)**
>
> A downloadable annotation tool for NLP and computer vision tasks such as named entity recognition, text classification, object detection, image segmentation, A/B evaluation and more.

If you check out the documentation or your `PRODIGY_README.html`, you'll also find more resources. If you prefer watching videos, check out or end-to-end video tutorials for different workflows.

---

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 10, 2019, 12:13pm UTC](https://support.prodi.gy/t/installation-steps/1765/5 "2019-07-10T12:13:12Z")

</div>

I am trying to run the following:  
prodigy ner.teach my\_set en\_core\_web\_sm news\_headlines.jsonl

and get the following error:  
OSError: [Errno 99] Cannot assign requested address

in my “.prodigy/prodigy.json” conf file, i have configured the “host” tag to be the ip of the machine.  
i also tried changing the ip to a dmain name.

still, i got the same error.

please advice

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [July 10, 2019, 5:18pm UTC](https://support.prodi.gy/t/installation-steps/1765/6 "2019-07-10T17:18:22Z")

</div>

Are you running a Docker container? And are you sure the host neds to be the machine IP and not `0.0.0.0`? From your report, it sounds like a similar quirk as described and solved here:

> [@OSError: \[Errno 99\] Cannot assign requested address](https://support.prodi.gy/t/oserror-errno-99-cannot-assign-requested-address/89/3):
>
> So I was poking at this further and I noticed I’m only able to get this working when I use host “0.0.0.0”. With “127.0.0.1” the app starts without crashing but I can’t connect to it from a browser. Some additional information. I’m running this in a docker container on my laptop. Networking is also not my strongest suite but usually when I run into these kinds of issues switching to 0.0.0.0 fixes things slight_smile Here’s my Dockerfile: FROM python:stretch MAINTAINER Michael Becker ENV PYT…

---

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 11, 2019, 7:57am UTC](https://support.prodi.gy/t/installation-steps/1765/7 "2019-07-11T07:57:15Z")

</div>

I am not running a docker, hence the link shared is not related.

If running a docker is advised, please share installation steps.

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [July 11, 2019, 9:20am UTC](https://support.prodi.gy/t/installation-steps/1765/8 "2019-07-11T09:20:23Z")

</div>

No, Docker isn’t particularly recommended – you can use it if you like using Docker, but you don’t have to.

Ultimately, the error isn’t specifically related to Prodigy – it typically means that the host isn’t configured correctly and usually happens if it’s mapped to localhost instead of `0.0.0.0`.

---

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 11, 2019, 10:47am UTC](https://support.prodi.gy/t/installation-steps/1765/9 "2019-07-11T10:47:22Z")

</div>

mapping the host to localhost or 127.0.0.1 works as expected but since this is a headless machine i want ot use its public ip.  
as i understand this is feasible.  
am i missing something?

---

<div class="post-metadata">

**Author:** ![honnibal](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/honnibal/32/35_2.png) [@honnibal](https://support.prodi.gy/u/honnibal)\
**Post date:** [July 11, 2019, 11:10am UTC](https://support.prodi.gy/t/installation-steps/1765/10 "2019-07-11T11:10:08Z")

</div>

You should be able to just set the environment variable `PRODIGY_HOST="0.0.0.0"`. You might also want to change the `PRODIGY_PORT` environment variable as well. Instead of environment variables, you can also configure these settings in the `prodigy.json` file. The readme has some more details about this as well.

If you try to advertise on port 80 of `0.0.0.0`, one error you might encounter is that you need sudo to do that. This can be annoying if you’re running within a virtualenv, as `sudo` by default drops your environment values. Use `sudo -E` if this problem occurs.

---

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 11, 2019, 1:07pm UTC](https://support.prodi.gy/t/installation-steps/1765/11 "2019-07-11T13:07:23Z")

</div>

verifying i understand you,

so you advise updating the PRODIGY.JSON, changing the host from the public IP of the machine to 0.0.0.0  
like that?  
{  
“port”: 80,  
“host”: “0.0.0.0”  
}

or do you advise leaving the PRODIGY.JSON with the host configured to the public IP of the machine and setting a parameter named PRODIGY\_HOST to be 0.0.0.0

?

thanks

---

<div class="post-metadata">

**Author:** ![omrison](https://avatars.discourse-cdn.com/v4/letter/o/b5a626/32.png) [@omrison](https://support.prodi.gy/u/omrison)\
**Post date:** [July 11, 2019, 1:24pm UTC](https://support.prodi.gy/t/installation-steps/1765/12 "2019-07-11T13:24:42Z")

</div>

Updating on Success 🙂

I changed the PRODIGY.JSON to the following host/port

{  
“port”: 80,  
“host”: “0.0.0.0”  
}

and it is working perfectly.  
thank you

---

<div class="post-metadata">

**Author:** ![JoelNiklaus](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/joelniklaus/32/1824_2.png) [@JoelNiklaus](https://support.prodi.gy/u/JoelNiklaus)\
**Post date:** [December 16, 2020, 3:02pm UTC](https://support.prodi.gy/t/installation-steps/1765/13 "2020-12-16T15:02:25Z")

</div>

Hi,  
I have the same prodigy.json but get a permission denied error when I start prodigy. It works well on port 8080. When I run it with sudo I get the following error: "sudo: prodigy: command not found"  
I am using a conda environment

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [December 16, 2020, 10:48pm UTC](https://support.prodi.gy/t/installation-steps/1765/14 "2020-12-16T22:48:51Z")

</div>

> [@JoelNiklaus](#):
>
> When I run it with sudo I get the following error: "sudo: prodigy: command not found"

Does `sudo python -m prodigy` work?

---

<div class="post-metadata">

**Author:** ![JoelNiklaus](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/joelniklaus/32/1824_2.png) [@JoelNiklaus](https://support.prodi.gy/u/JoelNiklaus)\
**Post date:** [December 17, 2020, 7:24am UTC](https://support.prodi.gy/t/installation-steps/1765/15 "2020-12-17T07:24:02Z")

</div>

Unfortunately not: /usr/bin/python: No module named prodigy

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [December 17, 2020, 10:39am UTC](https://support.prodi.gy/t/installation-steps/1765/16 "2020-12-17T10:39:22Z")

</div>

That sounds like Prodigy isn't installed in that environment – probably because you're running the system Python (`/usr/bin/python`) instead of your environment's Python?

---

<div class="post-metadata">

**Author:** ![JoelNiklaus](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/joelniklaus/32/1824_2.png) [@JoelNiklaus](https://support.prodi.gy/u/JoelNiklaus)\
**Post date:** [December 17, 2020, 11:00am UTC](https://support.prodi.gy/t/installation-steps/1765/17 "2020-12-17T11:00:02Z")

</div>

I get the exact same error when I run it with the environment's Python. It also does not work if I use the sudo option

> --preserve-env=PATH env

.  
Would it somehow be possible to run it on port 80 without sudo?
