title: How to use properly Pyenv and venv?
body: <p>Articles read:</p>
  
  <p><a href="https://realpython.com/python-virtual-environments-a-primer/" rel="noreferrer">Python Virtual Environments: A Primer</a>,</p>
  
  <p><a href="https://www.tecmint.com/pyenv-install-and-manage-multiple-python-versions-in-linux/" rel="noreferrer">Pyenv – Install Multiple Python Versions for Specific Project</a>,</p>
  
  <p><a href="https://medium.freecodecamp.org/manage-multiple-python-versions-and-virtual-environments-venv-pyenv-pyvenv-a29fb00c296f" rel="noreferrer">How to manage multiple Python versions and virtual environments</a> </p>
  
  <p>Let's suppose we have these directories:</p>
  
  <pre><code> ~/Projects/PyA : it'll use Python 3.4.3 with Django 2.0
   ~/Projects/PyB : it'll use Python 3.5.1 with Django 2.1
   ~/Projects/PyC : it'll use Python 3.5.6 with Django 2.2
   ~/Projects/PyD : it'll use Python 3.2 with python-igraph
  </code></pre>
  
  <p>The first to do, we install Python versions needed:</p>
  
  <pre><code>$ pyenv install 3.4.3
  $ pyenv install 3.5.1
  $ pyenv install 3.5.6
  $ pyenv install 3.2
  </code></pre>
  
  <p><strong>My doubts start here:</strong> </p>
  
  <p>Should I do this?</p>
  
  <pre><code>$ cd ~/Projects/PyA &amp;&amp; pyenv local 3.4.3 &amp;&amp; python3.4 -m venv proA
  $ cd ~/Projects/PyB &amp;&amp; pyenv local 3.5.1 &amp;&amp; python3.5 -m venv proB
  $ cd ~/Projects/PyC &amp;&amp; pyenv local 3.5.6 &amp;&amp; python3.5 -m venv proC
  $ cd ~/Projects/PyD &amp;&amp; pyenv local 3.2 &amp;&amp; python3.2 -m venv proD
  </code></pre>
  
  <p>When is an unique directory for virtual environments used? Which option is recommended? Why?</p>
  
  <p>How should I install per-project packages listed above?</p>
  
  <p>Should I use virtualenvwrapper?</p>
  
  <p>How do I switch between projects (changing Python/virtual-environment in the process) easily or painlessly?</p>
  
  <p>In Ruby, there is a file named <strong>Gemfile</strong> where I can set which gems (with their respective versions) are installed for the current project, which is a very good idea, is there something similar for Python?</p>
  
  <p>Thanks in advance.</p>
  
  <p>PS: I use ArchLinux as guest for vagrant box.</p>
  
  <p><strong>EDIT 10/10/18:</strong> Very thanks folks for you answers. But I request with the greatest respect to all of you if you could answer specifically every question asked for me, please. I learn better with practical examples more than theory.</p>