From 3270e16e6405a9780755ae77bbc5187ad01c6bb3 Mon Sep 17 00:00:00 2001 From: Marcel Loose <loose@astron.nl> Date: Wed, 24 Feb 2010 15:09:44 +0000 Subject: [PATCH] Bug 1475: Use Python distutils to determine third-party extensions directory, instead of hardcoding 'site-packages' into it. --- lofarinit.csh.in | 17 ++++++----------- lofarinit.sh.in | 17 ++++++----------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/lofarinit.csh.in b/lofarinit.csh.in index 99ca98599b9..602a12ecd8a 100644 --- a/lofarinit.csh.in +++ b/lofarinit.csh.in @@ -37,13 +37,8 @@ endif # Use only the basename of the the lib set lfr_libdir=`basename $lfr_libdir` -# Get python version. -set lfr_pyv=`python -V |& cat --` -set lfr_pyvv=`echo $lfr_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` -# Fall-back: if python cannot be found assume Python 2.4 -if ("$lfr_pyv" == "$lfr_pyvv") then - set lfr_pyvv=2.4 -endif +# Get directory for Python extensions +set lfr_pylibdir=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=True, prefix='')"` # Only modify path variables if $lfr_root is an existing directory. if (! (-d $lfr_root) ) then @@ -64,7 +59,7 @@ else setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | sed -e "s%:${lfr_lib}:%:%g" -e "s%^${lfr_lib}:%%" -e "s%:${lfr_lib}"'$%%' -e "s%^${lfr_lib}"'$%%'` endif if ($?PYTHONPATH) then - set lfr_pyt = "$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" + set lfr_pyt = "$lfr_path/$lfr_pylibdir" setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'` endif endif @@ -91,7 +86,7 @@ else setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | sed -e "s%:${lfr_lib}:%:%g" -e "s%^${lfr_lib}:%%" -e "s%:${lfr_lib}"'$%%' -e "s%^${lfr_lib}"'$%%'` endif if ($?PYTHONPATH) then - set lfr_pyt = "$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" + set lfr_pyt = "$lfr_path/$lfr_pylibdir" setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'` endif @@ -106,7 +101,7 @@ else else setenv LD_LIBRARY_PATH $LOFARROOT/${lfr_libdir}:$LD_LIBRARY_PATH endif - set lfr_pyt = "$LOFARROOT/$lfr_libdir/python$lfr_pyvv/site-packages" + set lfr_pyt = "$LOFARROOT/$lfr_pylibdir" if (! $?PYTHONPATH) then setenv PYTHONPATH $lfr_pyt else @@ -130,4 +125,4 @@ else endif -unset lfr_root lfr_bin lfr_libdir lfr_lib lfr_pyt lfr_pyv lfr_pyvv lfr_path +unset lfr_root lfr_bin lfr_libdir lfr_lib lfr_pylibdir lfr_pyt lfr_path diff --git a/lofarinit.sh.in b/lofarinit.sh.in index 2e1c3702a4c..cadb08941e5 100644 --- a/lofarinit.sh.in +++ b/lofarinit.sh.in @@ -37,13 +37,8 @@ fi # Use only the basename of the the lib lfr_libdir=`basename $lfr_libdir` -# Get python version. -lfr_pyv=`python -V 2>&1` -lfr_pyvv=`echo $lfr_pyv | sed -e "s/Python \([0-9]\.[0-9]\).*/\1/"` -# Fall-back: if python cannot be found assume Python 2.4 -if test "$lfr_pyv" = "$lfr_pyvv"; then - lfr_pyvv=2.4 -fi +# Get directory for Python extensions +lfr_pylibdir=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=True, prefix='')"` # First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, and PYTHONPATH. # Take care that a possible . is preceeded by a backslash (for the later sed). @@ -58,7 +53,7 @@ if [ "$LOFARROOT" != "" ]; then lfr_lib="$lfr_path/$lfr_libdir" LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%" -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"` export LD_LIBRARY_PATH - lfr_pyt="$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" + lfr_pyt="$lfr_path/$lfr_pylibdir" PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` export PYTHONPATH fi @@ -83,7 +78,7 @@ else lfr_lib="$lfr_path/$lfr_libdir" LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%" -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"` export LD_LIBRARY_PATH - lfr_pyt="$lfr_path/$lfr_libdir/python$lfr_pyvv/site-packages" + lfr_pyt="$lfr_path/$lfr_pylibdir" PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` export PYTHONPATH fi @@ -105,7 +100,7 @@ else LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH - lfr_pyt=$LOFARROOT/$lfr_libdir/python$lfr_pyvv/site-packages + lfr_pyt="$LOFARROOT/$lfr_pylibdir" if [ "$PYTHONPATH" = "" ]; then PYTHONPATH=$lfr_pyt else @@ -133,4 +128,4 @@ else fi # Clean up -unset lfr_root lfr_nroot lfr_bin lfr_libdir lfr_lib lfr_pyt lfr_pyv lfr_pyvv lfr_path +unset lfr_root lfr_nroot lfr_bin lfr_libdir lfr_lib lfr_pylibdir lfr_pyt lfr_path -- GitLab