From 15e57f576291d9233ab25e1614c6218579db170a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 18 Oct 2016 00:11:05 +0200 Subject: gnu: python-2.7: Add all guix prefixes in PYTHONPATH to site-prefixes. * gnu/packages/patches/python-2.7-site-prefixes.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add patch. --- gnu/local.mk | 1 + .../patches/python-2.7-site-prefixes.patch | 26 ++++++++++++++++++++++ gnu/packages/python.scm | 1 + 3 files changed, 28 insertions(+) create mode 100644 gnu/packages/patches/python-2.7-site-prefixes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 08f99c4836..5142f51e1b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -803,6 +803,7 @@ dist_patch_DATA = \ %D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ + %D%/packages/patches/python-2.7-site-prefixes.patch \ %D%/packages/patches/python-2.7-source-date-epoch.patch \ %D%/packages/patches/python-3-deterministic-build-info.patch \ %D%/packages/patches/python-3-search-paths.patch \ diff --git a/gnu/packages/patches/python-2.7-site-prefixes.patch b/gnu/packages/patches/python-2.7-site-prefixes.patch new file mode 100644 index 0000000000..9e3066508f --- /dev/null +++ b/gnu/packages/patches/python-2.7-site-prefixes.patch @@ -0,0 +1,26 @@ +Add all /gnu/store/ prefixes found in PYTHONPATH to the prefixes where +site-packages (and .pth files) are searched. + +*** Python-2.7.11/Lib/site.py.orig 2016-10-17 23:27:23.746149690 +0200 +--- Python-2.7.11/Lib/site.py 2016-10-17 23:44:51.930871644 +0200 +*************** +*** 65,70 **** +--- 65,82 ---- + + # Prefixes for site-packages; add additional prefixes like /usr/local here + PREFIXES = [sys.prefix, sys.exec_prefix] ++ # Guix: Add all /gnu/store-paths in PYTHONPATH--these are all ++ # "prefixes". This is required to search .pth files in all python ++ # packages contained in /gnu/store which is required to make ++ # .pth-defined namespace packages work. ++ # This is necessary if the packages are not merged into a single ++ # `site-packages` directory (like when using `guix environment`) but ++ # listed in PYTHONPATH (like when running `guix build`). ++ for p in sys.path: ++ if p.startswith('/gnu/store/'): ++ PREFIXES.append(p[:p.find('/', 44)]) # find first pathsep after hash ++ del p ++ + # Enable per user site-packages directory + # set it to False to disable the feature or True to force the feature + ENABLE_USER_SITE = None diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b6aeb8c032..ca40fe8c29 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -122,6 +122,7 @@ (define-public python-2.7 "0y7rl603vmwlxm6ilkhc51rx2mfj14ckcz40xxgs0ljnvlhp30yp")) (patches (search-patches "python-2.7-search-paths.patch" "python-2-deterministic-build-info.patch" + "python-2.7-site-prefixes.patch" "python-2.7-source-date-epoch.patch")) (modules '((guix build utils))) ;; suboptimal to delete failing tests here, but if we delete them in the -- cgit v1.2.3