Original question:
Is venv
/virtualenv
for python 2.x or python 3.x?
…I think that I’ve answered my question while typing this out:
-
venv
is for python 3.x and is installed with pip3
-
virtualenv
is for python 2.x and is installed with pip
- DO NOT install
virtualenv
for python 3.x (pip3)
- DO NOT install ‘venv’ for python 2.x (pip)
-
pipenv
is a dependency manager for virtual environments
-
virtualenvwrapper
helps to manage multiple virtual environments
…right?
Original post:
Is venv
/virtualenv
for python 2.x or python 3.x?
I’ve seen it explained as some variant of “[venv is for python 3.x and virtualenv is for python 2.x]”(https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment)
But in one example venv
is used as the name of the environment initiated with virtualenv
(ctrl + f: venv)
and you can [install virtualenv
with pip3
](more than 2 links not allowed for me atm)
…but you can alias pip as pip3 if you want, or you can take it a step further and register pip3 as pip by updating alternatives (not sharing source as this is a horrible idea)
This had me frozen in place for weeks.
Wrong. You definitively can use virtualenv
with Python 3. I do it all the time
Haven’t tried venv
for now, but with pipenv
I only had a mess. Doesn’t work on my machine properly. Maybe it’s me but I don’t get it to work. With virtualenv
everything runs smooth.
I know you can install virtualenv
on python 3.x, but why?
pipenv
and venv
are used for 2 different purposes: pipenv
is a package manager for virtual environments and venv
is a method of creating virtual environments.
Are you using virtualenv
or venv
with your virtualenv
install on Python 3.x: “Since Python 3.3, a subset of [virtualenv] has been integrated into the standard library under the venv module.”
Issue that I had with virtualenv
in python 3.x is that I never knew if I was using it correctly or if venv
was a better option.
I use virtualenv
because it just works for me (its a bit of a lazy statement but it’s true). I had such a mess with pipenv
that I need some more time to make a new approach towards venv
I like to learn new things but for a tool like a virtual environment I just need something that I can relay on and can efficiently use. Just pick one that works for you.
I’m not knocking your usage of virtualenv
- I’m glad virtualenv
is working for you!
I know that I posted this yesterday, but I had put a pin in the question awhile ago after someone suggested using Anaconda in place of virtualenv
or venv
. (“ANOTHER way?!”)
I’m probably overthinking a topic that boils down to user preference/project needs.
You can use both on Python 3 but I believe venv is superseding virtualenv .
virtualenv docs suggest support up to 3.7 at present
2 Likes