I was looking in Cristoph Gohlke\'s python packages and I noticed that there is a package Virtualenv for Python 3.3.
Since there is a package venv in the st
pyvenv was the recommended tool for creating virtual environments for Python 3.3 and 3.4
From python 3.5 onwards use:
python3 -m venv
venv is an inbuilt module with access to python's internals
pyvenv is deprecated in 3.6
Source: https://docs.python.org/3/library/venv.html
for the question
--no-site-packages
is the default in both. The --system-site-packages
option exists, but it's brokenpython3-venv
packageWhen venv was first announced, I'd hoped that it get into maintenance mode, to provide bug fixes on the "virtualenv for old pythons", and all developments would shift focus on the stdlib venv. I'm not sure about the project goals/roadmap for virtualenv, but I'm afraid that what I hoped is not happening. So, at least for the time being, I'd keep using the original virtualenv.
Generally, the virtualenv package is not required when using python3.3 or later, since it was incorporated into the standard library via PEP 405. As you note in the question, there are some relatively small differences between the latest versions of virtualenv and the venv package in the standard library. In part (e.g. --no-site-packages
) this stems from the different implementations. Since venv
is in the standard library, it doesn't have to jump through some of the contorted hoops that virtualenv
does in order to create a self-contained python installation, such as copying much of python's site
module.
The best resource is really to read the PEP thoroughly.