lucasmontano / magic-link

Generate, send and validate a magic link.
MIT License
105 stars 13 forks source link

[SETUP] Use of VENV (Python virtual environment) #14

Open ArthurFleischman opened 4 years ago

ArthurFleischman commented 4 years ago

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

jgabriel1 commented 4 years ago

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.

jbarbosaamancio commented 4 years ago

same this @jgabriel1

ArthurFleischman commented 4 years ago

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

felipemarkson commented 4 years ago

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

jgabriel1 commented 4 years ago

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 commented 4 years ago

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

felipemarkson commented 4 years ago

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 commented 4 years ago

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.

jgabriel1 commented 4 years ago

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.