Improve python install prefix determination.

This commit is contained in:
tgoff0 2015-02-19 18:12:44 +00:00
parent 893bc2d95d
commit 40b1247b84
2 changed files with 17 additions and 6 deletions

View file

@ -236,7 +236,7 @@ if test "x$want_python" = "xyes"; then
AC_SUBST(libev_CFLAGS) AC_SUBST(libev_CFLAGS)
AC_SUBST(libev_LIBS, [-lev]), AC_SUBST(libev_LIBS, [-lev]),
AC_MSG_ERROR([Python bindings require libev (try installing your 'libev-devel' or 'libev-dev' package)]))) AC_MSG_ERROR([Python bindings require libev (try installing your 'libev-devel' or 'libev-dev' package)])))
AC_SUBST(pyprefix, `eval ./python-prefix.py ${PYTHON_PREFIX}`) AC_SUBST(pyprefix, `eval ${PYTHON} ./python-prefix.py ${PYTHON_PREFIX} ${PYTHON_VERSION}`)
if test "${pyprefix}" != "${PYTHON_PREFIX}"; then if test "${pyprefix}" != "${PYTHON_PREFIX}"; then
pythondir=`echo ${pythondir} | sed -e 's,[$][{]prefix[}],${pyprefix},g'` pythondir=`echo ${pythondir} | sed -e 's,[$][{]prefix[}],${pyprefix},g'`
pyexecdir=`echo ${pyexecdir} | sed -e 's,[$][{]exec_prefix[}],${pyprefix},g'` pyexecdir=`echo ${pyexecdir} | sed -e 's,[$][{]exec_prefix[}],${pyprefix},g'`

View file

@ -5,19 +5,30 @@ import os.path
import site import site
def main(): def main():
if len(sys.argv) != 2: '''\
msg = 'usage: %s <prefix>\n' % os.path.basename(sys.argv[0]) Check if the given prefix is included in sys.path for the given
python version; if not find an alternate valid prefix. Print the
result to standard out.
'''
if len(sys.argv) != 3:
msg = 'usage: %s <prefix> <python version>\n' % \
os.path.basename(sys.argv[0])
sys.stderr.write(msg) sys.stderr.write(msg)
return 1 return 1
python_prefix = sys.argv[1] python_prefix = sys.argv[1]
python_version = sys.argv[2]
path = '%s/lib/python%s' % (python_prefix, python_version)
path = os.path.normpath(path)
if path[-1] != '/':
path = path + '/'
prefix = None prefix = None
for p in sys.path: for p in sys.path:
if python_prefix in p: if p.startswith(path):
prefix = python_prefix prefix = path
break break
if not prefix: if not prefix:
prefix = site.PREFIXES[-1] prefix = site.PREFIXES[-1]
print prefix sys.stdout.write('%s\n' % prefix)
return 0 return 0
if __name__ == '__main__': if __name__ == '__main__':