title: pip Virtualenv vs. directory in project
body: <p>Why does <code>pip</code> need to use virtual environments to isolate packages per-project, instead of just installing them in a default directory in the project? This seems like added complexity without benefit.</p>
  
  <p>NPM, for example, installs packages in the <code>&lt;project_root&gt;\node_modules</code> by default. No virtual environment necessary, and packages are still installed in a project-independent way.</p>
  
  <p><strong>Edit:</strong> To be clear, I'm interested in the <em>practical</em> advantages to pip's use of virtual environments over package management systems like NPM, Nuget, and Webpack, which all use directories in the project. Otherwise, if this is just a limitation of Python's modules system, then I'd be interested to know that too.</p>