diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 370e14b2ae181a60cbb70dfc6bf3b03bce20da3c..bf34b83c9914821ce0f685741ab2077d1f5ac277 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -134,6 +134,25 @@ def install(self, spec, prefix): self.filter_compilers(spec, prefix) + # TODO: + # On OpenSuse 13, python uses <prefix>/lib64/python2.7/lib-dynload/*.so + # instead of <prefix>/lib/python2.7/lib-dynload/*.so. Oddly enough the + # result is that Python can not find modules like cPickle. A workaround + # for now is to symlink to `lib`: + src = os.path.join(prefix, + 'lib64', + 'python{0}'.format(self.version.up_to(2)), + 'lib-dynload') + dst = os.path.join(prefix, + 'lib', + 'python{0}'.format(self.version.up_to(2)), + 'lib-dynload') + if os.path.isdir(src) and not os.path.isdir(dst): + mkdirp(dst) + for f in os.listdir(src): + os.symlink(os.path.join(src, f), + os.path.join(dst, f)) + # TODO: Once better testing support is integrated, add the following tests # https://wiki.python.org/moin/TkInter #