magic-link icon indicating copy to clipboard operation
magic-link copied to clipboard

[SETUP] Use of VENV (Python virtual environment)

Open ArthurFleischman opened this issue 4 years ago • 9 comments

Python virtual environment allows with one command the use of the same interpreters and packages by all devs

ArthurFleischman avatar May 12 '20 16:05 ArthurFleischman

Agreed. It would be best practice to work inside an isolated virtualenv and also making a requirements.txt file containing all the dependencies in the repo.

jgabriel1 avatar May 12 '20 17:05 jgabriel1

same this @jgabriel1

jbarbosaamancio avatar May 12 '20 17:05 jbarbosaamancio

@jbarbosaamancio sorry, typo error, it would be "same as ". hope i helped.

ArthurFleischman avatar May 12 '20 18:05 ArthurFleischman

We can use Poetry as the package and dependencies manager. See #16 and my PR #17.

felipemarkson avatar May 13 '20 01:05 felipemarkson

This poetry definitely looks cleaner than installing through pip. Does it eliminate the need for a virtualenv though? @felipemarkson

If not, in this specific case, it's just another way of using $ pip freeze > requirements.txt whenever you install a new dependency.

jgabriel1 avatar May 13 '20 10:05 jgabriel1

Anyways, this really short tutorial should help with setting up the virtualenv on Mac: https://gist.github.com/pandafulmanda/730a9355e088a9970b18275cb9eadef3

jgabriel1 avatar May 13 '20 10:05 jgabriel1

This poetry definitely looks cleaner than installing through pip. Does it eliminate the need for a virtualenv though? @felipemarkson

Actually, Poetry uses a virtualenv to manager the dependencies. Poetry has pip freeze equivalent to a production environment. However, Poetry helps a lot in development environment because it is separate the product dependencies and developer dependencies, like npm or yarn, and resolve the dependencies requirements.

If not, in this specific case, it's just another way of using $ pip freeze > requirements.txt whenever you install a new dependency.

Pip has not a good dependencies manager when the dependencies need a specific version, and the project can be a mess when others developers change the dependencies.

An alternative to Poetry is Pipenv, other dependency manager.

felipemarkson avatar May 13 '20 13:05 felipemarkson

In a small project, without others developers pip works fine. But if you need a development environment that can be used by others developers, a dependency manager is essential.

felipemarkson avatar May 13 '20 13:05 felipemarkson

Ok, got it! Just to be clear, I also think it's a good idea to use a more robust package manager than pip. It's just that I thought the main concern of this issue was to help people set up the venv itself.

An alternative to Poetry is Pipenv, other dependency manager.

I've heard of pipenv. If this is the case then it's an all-in-one thing as well.

Thanks for the tip on poetry though, will definitely check it out for myself.

jgabriel1 avatar May 13 '20 13:05 jgabriel1