[Python-Dev] Deprecate PEP 370 Per user site-packages directory? (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Sat Jan 13 13:57:38 EST 2018


On Sat, 13 Jan 2018 19🔞41 +0100 Christian Heimes <christian at python.org> wrote:

On 2018-01-13 19:04, Random832 wrote: > On Sat, Jan 13, 2018, at 12:06, Christian Heimes wrote: >> Hi, >> >> PEP 370 [1] was my first PEP that got accepted. I created it exactly one >> decade and two days ago for Python 2.6 and 3.0. Back then we didn't have >> virtual environment support in Python. Ian Bicking had just started to >> create the virtualenv project a couple of months earlier. >> >> Fast forward 10 years... >> >> Nowadays Python has venv in the standard library. The user-specific >> site-packages directory is no longer that useful. I would even say it's >> causing more trouble than it's worth. For example it's common for system >> script to use "#!/usr/bin/python3" shebang without -s or -I option. >> >> I propose to deprecate the feature and remove it in Python 4.0. > > Where would pip install --user put packages, and how would one run scripts that require those packages? Right now these things Just Work; I've never had to learn how to use virtual environments.

I see two option: 1) "pip install --user" is no longer supported. You have to learn how to use virtual envs. It's really easy: "python3 -m venv path; path/bin/pip install package". 2) "pip install --user" automatically creates or uses a custom virtual (~/.pip/virtualenv-$VERSION/) and links entry points to ~/.local/bin.

Option 2 doesn't work, since the installed package then isn't known to the system Python.

I'm not sure user site-packages adds a lot of complexity to Python, so I don't think it's worth breaking some people's usage.

Regards

Antoine.



More information about the Python-Dev mailing list