Replit Was Unable to Build the Virtual Environment for Python Project
Tags: replit, python, shriekdj, codewithshriekdj
Published: 2022-03-29 19:58:23

## Problem

> Replit Was Unable to Build the Virtual Environment for Python Project or the Project Not Giving Results As We Expected.

>> This Issue Can also happened to Other Online IDEs Also Like Glitch.

## Details

> Most Online IDE Already Use Virtual Environment By default already. even if you create an virtual environment with `python -m venv venv` it will not gonna run again in next run like next day and all packages install with `pip install --` needs to install again.

>> The venv by `python -m venv venv` for replit is not efficient.

## First Solution

> Replit uses Poetry Virtual Environment By Default for Python Project. Those are given below.
>> Note These should run under the **shell** tab not the console tab.

| Command With Pip | Command With Poetry |
| --- | --- |
| `python main.py` | `poetry run python main.py` |
| `pip install package_name` | `poetry add package_name` |
| `python -m venv venv` | `poetry init` |
| `source venv/bin/activate` | `poetry shell` |
| `python manage.py runserver` | `poetry run python manage.py runserver` |

> Mostly just add `poetry run` at first of running script like add this script to runner file of replit.

>> Click 3 dots in Open Editor of replit and click Show Hidden File and Edit the File Named `.replit` to given below.

```python
language = "python3"
run = "poetry run python manage.py runserver 0.0.0.0:8000"
# this is for django
```

## Second Solution

> Try Installing the alternative virtual environment named `pipenv` for the installing packages via `requirements.txt` file.
>> For Local Environment we add this package like `pip install pipenv` but for replit online IDE we go into shell tab and then add package by poetry.

```python
poetry add pipenv

# then run below comman to install dependencies from requirements.txt file
pipenv -r requirements.txt
```

> For **pipenv** Most Commands are already similar you just need to replace the word `pip` with `pipenv`.
> For Activating Pipenv Virtual Environment type `pipenv shell`

>> `.replit` should have something like below run command.

```python
language = "python3"
run = "pipenv install && pipenv run manage.py runserver 0.0.0.0:8000"
# just like given below but upper will work perfectly.
# run = "pipenv run manage.py runserver 0.0.0.0:8000"
```

> This Commands for mostly running outside virtual environment without activating it directly.

| Command With Pip | Command With Pipenv |
| --- | --- |
| `python main.py` | `pipenv run python main.py` |
| `pip install package_name` | `pipenv install package_name` |
| `python -m venv venv` | `pipenv init` |
| `source venv/bin/activate && pip install -r requirements.txt` | `pipenv shell && pipenv shell` or just `pipenv install` |
| `python manage.py runserver` | `pipenv run python manage.py runserver` |

## Conclusion
> I Will Suggest You Use Poetry Because It Have Some Features for replit.

- Faster Installing and file runing process ( compared to pipenv ).
- Packages are not deleted after opening the repl again on next day.
- CPU Load was lower Compared to `pipenv`.
  - I Ran An Package to install dependencies and the package had more than 50 dependencies for debugging `home-assistant/core` at github.
  - CPU Gone at Overheating but did not cross the line of cpu Usags ( For Me ).

[Replit](https://replit.com/) is an online IDE, hosting cloud, collaborative programming environment, and so much more. I've been a user for a while and I really want to voice out what I love about them.

Give a reaction if any one solutions helped you in any way.
Bye 👋.