Difference between revisions of "Epd canopy"
Line 464: | Line 464: | ||
Then try | Then try | ||
<source lang="bash"> | <source lang="bash"> | ||
− | setenv PYTHON_LIBRARY $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/libpython2.7.so | + | #setenv PYTHON_LIBRARY $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/libpython2.7.so |
− | setenv PYTHON_EXECUTABLE $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/bin/python2.7 | + | #setenv PYTHON_EXECUTABLE $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/bin/python2.7 |
setenv PYTHON_INCLUDE_DIR $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/include/python2.7 | setenv PYTHON_INCLUDE_DIR $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/include/python2.7 | ||
+ | </source> | ||
− | + | Setting system environment variable '''PYTHON_INCLUDE_DIR''' to point to the dir with '''Python.h''' solved the problem. | |
− | |||
− | |||
== See also == | == See also == | ||
[[Category:Installation | Installation category]] | [[Category:Installation | Installation category]] | ||
[[Category:Installation]] | [[Category:Installation]] |
Revision as of 17:21, 9 June 2014
Contents
Download from
Download from:
https://www.enthought.com/downloads/
Sign-up using a university email, to get access to academic version.
After installation
Information about how the PATH is setup, is seen here:
http://docs.enthought.com/canopy/quick-start/install_linux.html
After installation, it will add to either HOME/.bash_profile or HOME/.profile or HOME/.bashrc:
# Added by Canopy installer on 2014-06-09
# VIRTUAL_ENV_DISABLE_PROMPT can be set to '' to make bashprompt show that Canopy is active, otherwise 1
VIRTUAL_ENV_DISABLE_PROMPT=1 source $HOME/Enthought/Canopy_64bit/User/bin/activate
It will make a bash activation script in: HOME/Enthought/Canopy_64bit/User/bin/activate
That will make an activation source file.
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
# reset old environment variables
if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r
fi
if [ -n "$_OLD_VIRTUAL_PS1" ] ; then
PS1="$_OLD_VIRTUAL_PS1"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
if [ ! "$1" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelavent variables
deactivate nondestructive
VIRTUAL_ENV="$HOME/Enthought/Canopy_64bit/User"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "$PYTHONHOME" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x(Canopy 64bit) " != x ] ; then
PS1="(Canopy 64bit) $PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r
fi
Test in bash
Jusy try by:
bash
#See current python
which python
which scons
which pip
# Now activate
VIRTUAL_ENV_DISABLE_PROMPT=1
source $HOME/Enthought/Canopy_64bit/User/bin/activate
which python
which ipython
which scons
which pip
which canopy
# Start canopy
canopy
Make a tcsh activation script
If you are using red-hat, the default SHELL is /bin/tcsh.
The environment variables are setup in HOME/.cshrc
You could make a HOME/.cshrc_epd
set VIRTUAL_ENV_DISABLE_PROMPT=1
# unset irrelavent variables
set METHOD=nondestructive
if ( $?_OLD_VIRTUAL_PATH ) then
set PATH=$_OLD_VIRTUAL_PATH
setenv PATH $PATH
unset _OLD_VIRTUAL_PATH
endif
if ( $?_OLD_VIRTUAL_PYTHONHOME ) then
set PYTHONHOME=$_OLD_VIRTUAL_PYTHONHOME
setenv PYTHONHOME $PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
endif
if ( $?_OLD_VIRTUAL_PS1) then
set PS1=$_OLD_VIRTUAL_PS1
setenv PS1 $PS1
unset _OLD_VIRTUAL_PS1
endif
unset VIRTUAL_ENV
set VIRTUAL_ENV=$HOME/Enthought/Canopy_64bit/User
setenv VIRTUAL_ENV $VIRTUAL_ENV
set _OLD_VIRTUAL_PATH=$PATH
set PATH=$VIRTUAL_ENV/bin:$PATH
setenv PATH $PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if ( $?PYTHONHOME ) then
set _OLD_VIRTUAL_PYTHONHOME=$PYTHONHOME
unset PYTHONHOME
endif
if ( ! $?VIRTUAL_ENV_DISABLE_PROMPT ) then
set _OLD_VIRTUAL_PS1=$PS1
if ( "x(Canopy 64bit) " != x ) then
set PS1="(Canopy 64bit) $PS1"
else if ( `basename $VIRTUAL_ENV` = "__" ) then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
set DIRN=`dirname $VIRTUAL_ENV`
set BN=`basename $DIRN`
set PS1="$BN $PS1"
else
set PS1="(`basename $VIRTUAL_ENV`)$PS1"
endif
#setenv PS1 $PS1
endif
Then you can at anytime activate the Enthought python by doing
source $HOME/.cshrc_epd
This can be become more easy, of you add an alias for activating python 'ap'.
echo "alias ap 'source $HOME/.cshrc_epd'" >> $HOME/.cshrc
source $HOME/.cshrc
You can now at anytime just activate EPD python by doing
ap
ipython
Installing and managing a central python install with enthought canopy
Say, that you work in research group, which have a commen file system for their users.
You may have personal computers, a central file server, and maybe one computer server with muscles.
You would like to make one common large file size installation for EPD, on the file server.
Each user should start this main installation, and be able to have personal python packages.
In this way, the server admin can save space on network storage, and users can install personal python packages for their convenience.
The user who holds the shared software is called: software.
The path to the Canopy installation is: /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64.
Install
tcsh
# Set variables
set INUSER=software
# Change to software user
su $INUSER
set IND=/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64
cd $IND
# Maybe remove already installed Enthought
rm -rf $HOME/Enthought/
rm -rf $HOME/.canopy
# Install
canopy_cli -h
canopy_cli --common-install --no-gui-setup --install-dir $PWD
Make tcsh activation script
Now we want to make a tcsh activation script.
cat > cshrc_epd << 'EOF'
set VIRTUAL_ENV_DISABLE_PROMPT=1
# unset irrelavent variables
if ( $?_OLD_VIRTUAL_PATH ) then
set PATH=$_OLD_VIRTUAL_PATH
setenv PATH $PATH
unset _OLD_VIRTUAL_PATH
endif
if ( $?_OLD_VIRTUAL_PYTHONHOME ) then
set PYTHONHOME=$_OLD_VIRTUAL_PYTHONHOME
setenv PYTHONHOME $PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
endif
if ( $?_OLD_VIRTUAL_PS1) then
set PS1=$_OLD_VIRTUAL_PS1
setenv PS1 $PS1
unset _OLD_VIRTUAL_PS1
endif
unset VIRTUAL_ENV
set VIRTUAL_ENV=MYINSTALLDIR
setenv VIRTUAL_ENV $VIRTUAL_ENV
set _OLD_VIRTUAL_PATH=$PATH
set PATH=$VIRTUAL_ENV/bin:$PATH
setenv PATH $PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if ( $?PYTHONHOME ) then
set _OLD_VIRTUAL_PYTHONHOME=$PYTHONHOME
unset PYTHONHOME
endif
if ( ! $?VIRTUAL_ENV_DISABLE_PROMPT ) then
set _OLD_VIRTUAL_PS1=$PS1
if ( "x(Canopy 64bit) " != x ) then
set PS1="(Canopy 64bit) $PS1"
else if ( `basename $VIRTUAL_ENV` = "__" ) then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
set DIRN=`dirname $VIRTUAL_ENV`
set BN=`basename $DIRN`
set PS1="$BN $PS1"
else
set PS1="(`basename $VIRTUAL_ENV`)$PS1"
endif
#setenv PS1 $PS1
endif
'EOF'
Then let us see it, and change the one important line.
set EPDUSER=$PWD/Canopy_64bit/User
# Sed can use any separator instead of / in the s command. Just use something that is not encountered in the path: s+AAA+BBB+
sed -i "s+MYINSTALLDIR+$EPDUSER+g" cshrc_epd
grep "set VIRTUAL_ENV" cshrc_epd
Let the user software' has a shared cshrc file, which all users with source from their own $HOME/.cshrc file.
cat >> $HOME/cshrc << EOF
#--------------------------------------------------------------
# Enthought Python distribution
# Canopy
#--------------------------------------------------------------
# Alias 'ap' as activate python.
alias ap 'source $PWD/cshrc_epd'
EOF
Each user needs to put in their .cshrc file
source /sbinlab2/software/cshrc
Install Minfx and Bmrblib and mpi4py
Remember to check, if there are newer versions of minfx and bmrblib.
The minfx and bmrblib libraries can be installed on all Linux systems by typing:
# Switch to software user
su software
# Activate python
ap
# Download
cd $HOME/Downloads
wget http://download.gna.org/minfx/minfx-1.0.6.tar.gz
tar -xzf minfx-1.0.6.tar.gz
cd minfx-1.0.6
#Then either
pip install .
cd ..
wget http://download.gna.org/bmrblib/bmrblib-1.0.3.tar.gz
tar -xzf bmrblib-1.0.3.tar.gz
cd bmrblib-1.0.3
pip install .
cd ..
wget https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-1.3.1.tar.gz
tar -xzf mpi4py-1.3.1.tar.gz
cd mpi4py-1.3.1
pip install .
Scripts to run relax
See linux mpi4py installtion if you want to run multi processor mode.
Here we have one computer, with 24 cores, called haddock. We want to have the users logon on to haddock, when they want to do multi-core calculations.
Make these scripts available somewhere in PATH.
For private single computer
#!/bin/tcsh
# Set the lax version used for this script.
set RELAX=/sbinlab2/software/NMR-relax/relax_trunk/relax
# Run relax in multi processor mode.
set RELAXRUN="$RELAX $argv"
# Activate python
ap
$RELAX $argv
For multi core computations.
#!/bin/tcsh
# Set the lax version used for this script.
set RELAX=/sbinlab2/software/NMR-relax/relax_trunk/relax
# Set number of available CPUs.
#set NPROC=`nproc`
set NPROC=5
set NP=`echo $NPROC + 1 | bc `
# Run relax in multi processor mode.
set RELAXRUN="/usr/lib64/openmpi/bin/mpirun -np $NP $RELAX --multi='mpi4py' $argv"
# Check machine, since only machine haddock have openmpi-devel installed
if ( $HOST != "haddock") then
echo "You have to run on haddock. I do it for you"
ssh haddock -Y -t "cd $PWD; ap; $RELAXRUN; /bin/tcsh"
else
# Activate python
ap
/usr/lib64/openmpi/bin/mpirun -np $NP $RELAX --multi='mpi4py' $argv
endif
Compile program issues with scons
# Go into install directory
tcsh
set IND=/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64
cd $IND
# setenv PYTHON_LIBRARY XXXXX/libpython2.7.so
# libpython2.7.so
find . -name libpython2.7.so -type f
./appdata/canopy-1.4.0.1938.rh5-x86_64/lib/libpython2.7.so
./appdata/canopy-1.4.0.1938.rh5-x86_64/lib/python2.7/config/libpython2.7.so
./Canopy_64bit/User/lib/libpython2.7.so
./Canopy_64bit/System/lib/libpython2.7.so
# setenv PYTHON_EXECUTABLE XXXXX/python2.7
# find . -name python\*
# find . -name python -type f
# find . -name python2.7 -type f
./appdata/canopy-1.4.0.1938.rh5-x86_64/bin/python2.7
./Canopy_64bit/User/bin/python
./Canopy_64bit/User/bin/python2.7
./Canopy_64bit/System/bin/python
./Canopy_64bit/System/bin/python2.7
# setenv PYTHON_INCLUDE_DIR XXXX/
# find . -name Python.h -type f
./appdata/canopy-1.4.0.1938.rh5-x86_64/include/python2.7/Python.h
Python.h
[tlinnet@tomat disp_spin_speed]$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o target_functions/relax_fit.os -c -I/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/Canopy_64bit/User/include/python2.7 -fPIC target_functions/relax_fit.c
target_functions/relax_fit.c:21:20: error: Python.h: No such file or directory
target_functions/relax_fit.c:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
target_functions/relax_fit.c:79: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
target_functions/relax_fit.c:117: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
target_functions/relax_fit.c:142: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
target_functions/relax_fit.c:153: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
target_functions/relax_fit.c:171: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'relax_fit_methods'
target_functions/relax_fit.c: In function 'initrelax_fit':
target_functions/relax_fit.c:227: error: 'relax_fit_methods' undeclared (first use in this function)
target_functions/relax_fit.c:227: error: (Each undeclared identifier is reported only once
target_functions/relax_fit.c:227: error: for each function it appears in.)
scons: *** [target_functions/relax_fit.os] Error 1
scons: building terminated because of errors.
Then try
#setenv PYTHON_LIBRARY $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/lib/libpython2.7.so
#setenv PYTHON_EXECUTABLE $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/bin/python2.7
setenv PYTHON_INCLUDE_DIR $IND/appdata/canopy-1.4.0.1938.rh5-x86_64/include/python2.7
Setting system environment variable PYTHON_INCLUDE_DIR to point to the dir with Python.h solved the problem.