From 223cc96e5bb8d7d71f4b769ce722ebbdcebb8289 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 3 Dec 2021 22:36:26 -0500 Subject: sitecustomize.py: Honor .pth files. Fixes . * gnu/packages/aux-files/python/sitecustomize.py: Use site.addsitedirs to add the site directories; this takes care of the .pth files. Make sure the added items still appear before Python's own 'site-packages' directory. --- gnu/packages/aux-files/python/sitecustomize.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'gnu/packages/aux-files') diff --git a/gnu/packages/aux-files/python/sitecustomize.py b/gnu/packages/aux-files/python/sitecustomize.py index 71e328b9ac..e2348e0356 100644 --- a/gnu/packages/aux-files/python/sitecustomize.py +++ b/gnu/packages/aux-files/python/sitecustomize.py @@ -18,6 +18,7 @@ # along with GNU Guix. If not, see . import os +import site import sys # Commentary: @@ -47,9 +48,18 @@ all_sites_norm = [os.path.normpath(p) for p in all_sites_raw] matching_sites = [p for p in all_sites_norm if p.endswith(site_packages_prefix)] -# Insert sites matching the current version into sys.path, right before -# Python's own site. This way, the user can override the libraries provided -# by Python itself. -sys_path_absolute = [os.path.realpath(p) for p in sys.path] -index = sys_path_absolute.index(python_site) -sys.path[index:index] = matching_sites +if matching_sites: + # Deduplicate the entries, append them to sys.path, and handle any + # .pth files they contain. + for s in matching_sites: + site.addsitedir(s) + + # Move the entries that were appended to sys.path in front of + # Python's own site-packages directory. This enables Guix + # packages to override Python's bundled packages, such as 'pip'. + python_site_index = sys.path.index(python_site) + new_site_start_index = sys.path.index(matching_sites[0]) + if python_site_index < new_site_start_index: + sys.path = (sys.path[:python_site_index] + + sys.path[new_site_start_index:] + + sys.path[python_site_index:new_site_start_index]) -- cgit v1.2.3 From c3c943055d60ca4f926d0dac52b7b79b44f12c42 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 27 Dec 2021 19:21:16 +0100 Subject: build/python: Improve error output in sanity check. Instead of printing the "str()" representation of the excaption, print the "repr()" representation. This will print the name of the exception and thus ease understanding the actual error. Signed-off-by: Maxim Cournoyer --- gnu/packages/aux-files/python/sanity-check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/aux-files') diff --git a/gnu/packages/aux-files/python/sanity-check.py b/gnu/packages/aux-files/python/sanity-check.py index a84f8f03c0..182133bb3d 100644 --- a/gnu/packages/aux-files/python/sanity-check.py +++ b/gnu/packages/aux-files/python/sanity-check.py @@ -44,7 +44,7 @@ for dist in ws: pkg_resources.require(req) print('OK') except Exception as e: - print('ERROR:', req, e) + print('ERROR:', req, repr(e)) ret = 1 continue -- cgit v1.2.3