# PEP 704 - Require virtual environments by default for package installers

**URL:** <https://discuss.python.org/t/pep-704-require-virtual-environments-by-default-for-package-installers/22846>\
**Category:** Packaging\
**Created:** [January 16, 2023, 11:38pm UTC](https://discuss.python.org/t/pep-704-require-virtual-environments-by-default-for-package-installers/22846 "2023-01-16T23:38:31Z")\
**Posts on this page:** 1\
**Showing post:** 76

<div class="post-metadata">

**Author:** ![steve.dower](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/steve.dower/32/56_2.png) [@steve.dower](https://discuss.python.org/u/steve.dower)\
**Post date:** [February 8, 2023, 2:06pm UTC](https://discuss.python.org/t/pep-704-require-virtual-environments-by-default-for-package-installers/22846/76 "2023-02-08T14:06:01Z")

</div>

> [@dstufft](#):
>
> Conda is the distro

This doesn’t _really_ make sense, at least not without a lot more definition of what you mean by “distro” here (if PyPI is also a “distro”, then sure, but I’m pretty sure you weren’t implying this 😉 )

Perhaps what you mean is “the Conda environment and its Conda-installed packages is the distro, and pip-installed packages go into `site-packages`”? Which does make sense,\[1\] but only actually works if pip is searching both directories and then choosing to install only unsatisfied requirements into its own directory.\[2\] Without this, it’s just as messy as a venv based on a Conda env would be today.

The best way to make this work really is for Conda to build its packages directly into `Lib` and not `Lib/site-packages`, which it can easily do - it’s just how the files are packaged. It also saves having to convince Python to find another search path on startup, which is also way more messy than it should be. But of course, the transition costs are pretty significant here, even if the end result might be smoother in some ways.

* * *

1. Big aside, this was my idea behind PEP 582 inheriting system packages by default - if you start from a Conda env, you _want_ all those packages, and then layer on your app-specific ones in a separate directory. 

2. Again, part of the 582 workflow I’d imagined.

---

_[View the full topic](https://discuss.python.org/t/pep-704-require-virtual-environments-by-default-for-package-installers/22846)._
