PyEnv && Pipenv
If there’s something I’ve learnt with experience is that there’s almost always a simple way to do things. There are millions of people dealing with development problems the same way you are, so chances are someone already stumble with a way to simplify things.
One of those simple things is putting together a Python development environments.
I’m wouldn’t say I’m a Python developer. I only use it for a specific subset of cases, mostly requiring large amounts of data for analysis, Machine Learning, etc.
So intuitively, when setting up my development environment I try to make it as easy as possible, and coming from other programming languages and frameworks such as Ruby, Elixir, Node, etc where there’s clear separation between version language and libraries almost by default, I’d expect Python to be no different.
Wrong! 😭
Python’s setup is a mess. Python 2 is still around and it has no compatibility with Python 3. Python 3 at the same time has so many ways to be setup that it makes it so confusing.
If you pick the wrong way to setup and tie too many things to the system, then you end up with incompatibilities across projects and all other sorts of issues.
However, there’s one type of setup that, in my opinion, seems to be the most similar to what I’m used to. And…