{{ message }}
bpo-41376: Correct the documentation on site.getusersitepackages() regarding respecting PYTHONNOUSERSITE - #21602
Merged
methane merged 1 commit intoOct 8, 2020
Conversation
Contributor
Author
pelson
force-pushed
the
getusersitepackages_and_pynoaddusersite
branch
from
July 23, 2020 15:33
db7227e to
00c68a8
Compare
…` regarding respecting PYTHONNOUSERSITE
``site.getusersitepackages()`` returns the location of the user-specific site-packages directory
whether or not it exists, or is added to the ``sys.path``. We can see this easily with:
```
$ python -c "import site; print(site.getusersitepackages())"
/home/user/.local/lib/python3.7/site-packages
$ python -s -c "import site; print(site.getusersitepackages())"
/home/user/.local/lib/python3.7/site-packages
```
This is even true when the user-specific site-packages doesn't exist, as is demonstrated by:
```
$ python -m site
sys.path = [
'/home/user/conda/lib/python37.zip',
'/home/user/conda/lib/python3.7',
'/home/user/conda/lib/python3.7/lib-dynload',
'/home/user/conda/lib/python3.7/site-packages',
]
USER_BASE: '/home/user/.local' (exists)
USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
$ python -s -m site
sys.path = [
'/home/user/conda/lib/python37.zip',
'/home/user/conda/lib/python3.7',
'/home/user/conda/lib/python3.7/lib-dynload',
'/home/user/conda/lib/python3.7/site-packages',
]
USER_BASE: '/home/user/.local' (exists)
USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: False
```
It was not practical to prevent the function from returning None if user-specific site-packages are disabled, since there are other uses of the function which are relying on this behaviour (e.g. ``python -m site``).
pelson
force-pushed
the
getusersitepackages_and_pynoaddusersite
branch
from
July 23, 2020 15:38
00c68a8 to
46430b8
Compare
pelson
requested review from
a team,
1st1,
asvetlov,
berkerpeksag,
brettcannon,
encukou,
ericsnowcurrently,
ericvsmith,
ezio-melotti,
gpshead,
gvanrossum,
ilevkivskyi,
methane,
ncoghlan,
pablogsal,
rhettinger,
skrah,
terryjreedy,
tiran and
warsaw
as code owners
July 23, 2020 15:38
brettcannon
removed request for
a team,
brettcannon,
ezio-melotti,
skrah and
terryjreedy
July 23, 2020 19:01
Contributor
Author
|
@methane sorry to ping you directly, but you were the last to add to the site documentation and have also made changes to |
methane
approved these changes
Oct 8, 2020
methane
left a comment
Member
There was a problem hiding this comment.
LGTM. But merge button is disabled for some reason. I don't know why.
Contributor
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Oct 8, 2020
…honGH-21602) `site.getusersitepackages()` returns the location of the user-specific site-packages directory even when the user-specific site-packages is disabled. ``` $ python -s -m site sys.path = [ '/home/user/conda/lib/python37.zip', '/home/user/conda/lib/python3.7', '/home/user/conda/lib/python3.7/lib-dynload', '/home/user/conda/lib/python3.7/site-packages', ] USER_BASE: '/home/user/.local' (exists) USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist) ENABLE_USER_SITE: False ``` It was not practical to prevent the function from returning None if user-specific site-packages are disabled, since there are other uses of the function which are relying on this behaviour (e.g. `python -m site`). (cherry picked from commit 35f041d) Co-authored-by: Phil Elson <pelson.pub@gmail.com>
|
GH-22591 is a backport of this pull request to the 3.9 branch. |
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Oct 8, 2020
…honGH-21602) `site.getusersitepackages()` returns the location of the user-specific site-packages directory even when the user-specific site-packages is disabled. ``` $ python -s -m site sys.path = [ '/home/user/conda/lib/python37.zip', '/home/user/conda/lib/python3.7', '/home/user/conda/lib/python3.7/lib-dynload', '/home/user/conda/lib/python3.7/site-packages', ] USER_BASE: '/home/user/.local' (exists) USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist) ENABLE_USER_SITE: False ``` It was not practical to prevent the function from returning None if user-specific site-packages are disabled, since there are other uses of the function which are relying on this behaviour (e.g. `python -m site`). (cherry picked from commit 35f041d) Co-authored-by: Phil Elson <pelson.pub@gmail.com>
|
GH-22592 is a backport of this pull request to the 3.8 branch. |
miss-islington
added a commit
that referenced
this pull request
Oct 8, 2020
…21602) `site.getusersitepackages()` returns the location of the user-specific site-packages directory even when the user-specific site-packages is disabled. ``` $ python -s -m site sys.path = [ '/home/user/conda/lib/python37.zip', '/home/user/conda/lib/python3.7', '/home/user/conda/lib/python3.7/lib-dynload', '/home/user/conda/lib/python3.7/site-packages', ] USER_BASE: '/home/user/.local' (exists) USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist) ENABLE_USER_SITE: False ``` It was not practical to prevent the function from returning None if user-specific site-packages are disabled, since there are other uses of the function which are relying on this behaviour (e.g. `python -m site`). (cherry picked from commit 35f041d) Co-authored-by: Phil Elson <pelson.pub@gmail.com>
shihai1991
added a commit
to shihai1991/cpython
that referenced
this pull request
Oct 9, 2020
* origin/master: (147 commits) Fix the attribute names in the docstring of GenericAlias (pythonGH-22594) bpo-39337: Add a test case for normalizing of codec names (pythonGH-19069) bpo-41557: Update Windows installer to use SQLite 3.33.0 (pythonGH-21960) bpo-41976: Fix the fallback to gcc of ctypes.util.find_library when using gcc>9 (pythonGH-22598) bpo-41306: Allow scale value to not be rounded (pythonGH-21715) bpo-41970: Avoid test failure in test_lib2to3 if the module is already imported (pythonGH-22595) bpo-41376: Fix the documentation of `site.getusersitepackages()` (pythonGH-21602) Revert "bpo-26680: Incorporate is_integer in all built-in and standard library numeric types (pythonGH-6121)" (pythonGH-22584) bpo-41923: PEP 613: Add TypeAlias to typing module (python#22532) Fix comment about PyObject_IsTrue. (pythonGH-22343) bpo-38605: Make 'from __future__ import annotations' the default (pythonGH-20434) bpo-41905: Add abc.update_abstractmethods() (pythonGH-22485) bpo-41944: No longer call eval() on content received via HTTP in the UnicodeNames tests (pythonGH-22575) bpo-41944: No longer call eval() on content received via HTTP in the CJK codec tests (pythonGH-22566) Post 3.10.0a1 Python 3.10.0a1 bpo-41584: clarify when the reflected method of a binary arithemtic operator is called (python#22505) bpo-41939: Fix test_site.test_license_exists_at_url() (python#22559) bpo-41774: Tweak new programming FAQ entry (pythonGH-22562) bpo-41936. Remove macros Py_ALLOW_RECURSION/Py_END_ALLOW_RECURSION (pythonGH-22552) ...
pablogsal
pushed a commit
that referenced
this pull request
Oct 11, 2020
…21602) (GH-22592) `site.getusersitepackages()` returns the location of the user-specific site-packages directory even when the user-specific site-packages is disabled. ``` $ python -s -m site sys.path = [ '/home/user/conda/lib/python37.zip', '/home/user/conda/lib/python3.7', '/home/user/conda/lib/python3.7/lib-dynload', '/home/user/conda/lib/python3.7/site-packages', ] USER_BASE: '/home/user/.local' (exists) USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist) ENABLE_USER_SITE: False ``` It was not practical to prevent the function from returning None if user-specific site-packages are disabled, since there are other uses of the function which are relying on this behaviour (e.g. `python -m site`). (cherry picked from commit 35f041d) Co-authored-by: Phil Elson <pelson.pub@gmail.com> Co-authored-by: Phil Elson <pelson.pub@gmail.com>
Contributor
Author
xzy3
pushed a commit
to xzy3/cpython
that referenced
this pull request
Oct 18, 2020
…honGH-21602) `site.getusersitepackages()` returns the location of the user-specific site-packages directory even when the user-specific site-packages is disabled. ``` $ python -s -m site sys.path = [ '/home/user/conda/lib/python37.zip', '/home/user/conda/lib/python3.7', '/home/user/conda/lib/python3.7/lib-dynload', '/home/user/conda/lib/python3.7/site-packages', ] USER_BASE: '/home/user/.local' (exists) USER_SITE: '/home/user/.local/lib/python3.7/site-packages' (doesn't exist) ENABLE_USER_SITE: False ``` It was not practical to prevent the function from returning None if user-specific site-packages are disabled, since there are other uses of the function which are relying on this behaviour (e.g. `python -m site`).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

site.getusersitepackages()returns the location of the user-specific site-packages directorywhether or not it exists, or is added to the
sys.path. We can see this easily with:This is even true when the user-specific site-packages doesn't exist, as is demonstrated by:
It was not practical to update the function to return None if user-specific site-packages are disabled (i.e. update the function to reflect the existing documentation), since there are other uses of the function which are relying on this behaviour (e.g.
python -m site) and it would amount to a breaking change.https://bugs.python.org/issue41376