Difference between revisions of "Epd canopy"
(Forced creation of a TOC - this will improve the formatting on the main page 'Did you know...' section.) |
|||
(75 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | __TOC__ | ||
+ | |||
== Download from == | == Download from == | ||
Download from:<br> | Download from:<br> | ||
Line 9: | Line 11: | ||
http://docs.enthought.com/canopy/quick-start/install_linux.html | http://docs.enthought.com/canopy/quick-start/install_linux.html | ||
− | It will make a '''bash''' activation script. | + | After installation, it will add to either '''HOME/.bash_profile''' or '''HOME/.profile''' or '''HOME/.bashrc''': |
− | <source lang"bash"> | + | <source lang="bash"> |
− | + | # 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 | ||
+ | </source> | ||
+ | |||
+ | It will make a '''bash''' activation script in: '''HOME/Enthought/Canopy_64bit/User/bin/activate''' | ||
+ | |||
+ | That will make an activation source file. | ||
+ | |||
+ | <source lang="bash"> | ||
+ | # 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 | ||
</source> | </source> | ||
+ | |||
+ | == Test in bash == | ||
+ | Jusy try by: | ||
+ | |||
+ | <source lang="bash"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | == Make a tcsh activation script == | ||
+ | If you are using red-hat, the default SHELL is '''/bin/tcsh'''.<br> | ||
+ | The environment variables are setup in '''HOME/.cshrc''' | ||
+ | |||
+ | You could make a '''HOME/.cshrc_epd''' | ||
+ | |||
+ | <source lang="bash"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | Then you can at anytime activate the Enthought python by doing | ||
+ | <source lang="bash"> | ||
+ | source $HOME/.cshrc_epd | ||
+ | </source> | ||
+ | This can be become more easy, of you add an alias for activating python 'ap'. | ||
+ | <source lang="bash"> | ||
+ | echo "alias ap 'source $HOME/.cshrc_epd'" >> $HOME/.cshrc | ||
+ | source $HOME/.cshrc | ||
+ | </source> | ||
+ | You can now at anytime just activate EPD python by doing | ||
+ | <source lang="bash"> | ||
+ | ap | ||
+ | ipython | ||
+ | </source> | ||
+ | |||
+ | == Installing and managing a central python install with enthought canopy == | ||
+ | http://blog.enthought.com/python/installing-and-managing-a-central-python-install-with-enthought-canopy-v1-1/ | ||
+ | |||
+ | Say, that you work in research group, which have a commen file system for their users.<br> | ||
+ | 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. <br> | ||
+ | Each user should start this main installation, and be able to have personal python packages. <br> | ||
+ | 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'''.<br> | ||
+ | The path to the Canopy installation is: '''/sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64'''. | ||
+ | |||
+ | === Install === | ||
+ | <source lang="bash"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | === Make tcsh activation script === | ||
+ | |||
+ | Now we want to make a tcsh activation script. | ||
+ | |||
+ | <source lang="bash"> | ||
+ | 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' | ||
+ | </source> | ||
+ | |||
+ | Then let us see it, and change the one important line. | ||
+ | <source lang="bash"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | === Add to shared cshrc === | ||
+ | Let the user ''software''' has a shared '''cshrc''' file, which all users with source from their own '''$HOME/.cshrc''' file. | ||
+ | |||
+ | <source lang="bash"> | ||
+ | cat >> $HOME/cshrc << EOF | ||
+ | #-------------------------------------------------------------- | ||
+ | # Enthought Python distribution | ||
+ | # Canopy | ||
+ | #-------------------------------------------------------------- | ||
+ | # Alias 'ap' as activate python. | ||
+ | alias ap 'source $PWD/cshrc_epd' | ||
+ | EOF | ||
+ | </source> | ||
+ | |||
+ | === Source shared cshrc for all users === | ||
+ | Each user needs to put in their '''.cshrc''' file | ||
+ | |||
+ | <source lang="bash"> | ||
+ | source /sbinlab2/software/cshrc | ||
+ | </source> | ||
+ | |||
+ | == Install Minfx and Bmrblib and mpi4py == | ||
+ | |||
+ | # [[Minfx#Install | Minfx]] | ||
+ | # [[Bmrblib#Install | Bmrblib]] | ||
+ | # [[Mpi4py#Install | Mpi4py]] | ||
+ | |||
+ | == Scripts to run relax == | ||
+ | See [[Installation_linux#mpi4py | 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 | ||
+ | <source lang="bash"> | ||
+ | #!/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 | ||
+ | </source> | ||
+ | |||
+ | For multi core computations. | ||
+ | <source lang="bash"> | ||
+ | #!/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 | ||
+ | </source> | ||
+ | |||
+ | == Compile program issues with scons == | ||
+ | <source lang="bash"> | ||
+ | # 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 | ||
+ | </source> | ||
+ | |||
+ | === Python.h === | ||
+ | <source lang="bash"> | ||
+ | [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. | ||
+ | </source> | ||
+ | Then try | ||
+ | <source lang="bash"> | ||
+ | #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 | ||
+ | </source> | ||
+ | |||
+ | Setting system environment variable '''PYTHON_INCLUDE_DIR''' to point to the dir with '''Python.h''' solved the problem. | ||
+ | |||
+ | === For MAC === | ||
+ | ==== Python.h ==== | ||
+ | <source lang="bash"> | ||
+ | echo "PYTHON_INCLUDE_DIR=/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/include/python2.7" >> $HOME/.bash_profile | ||
+ | |||
+ | echo "export PYTHON_INCLUDE_DIR" >> $HOME/.bash_profile | ||
+ | </source> | ||
+ | |||
+ | ==== Wx program running on Canopy 1.4 on OS X "Please run with a Framework build of python" ==== | ||
+ | See https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9 to fix it. | ||
+ | |||
+ | === For Linux === | ||
+ | ==== Python.h ==== | ||
+ | <source lang="bash"> | ||
+ | setenv PYTHON_INCLUDE_DIR /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.1.1975.rh5-x86_64/include/python2.7 | ||
+ | |||
+ | # Or | ||
+ | cd /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.1.1975.rh5-x86_64/include | ||
+ | ln -s /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.1.1975.rh5-x86_64/include/python2.7 python2.7 | ||
+ | </source> | ||
+ | |||
+ | == See also == | ||
+ | [[Category:Installation | Installation category]] | ||
+ | [[Category:Installation]] |
Latest revision as of 14:18, 15 October 2015
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
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.
For MAC
Python.h
echo "PYTHON_INCLUDE_DIR=/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/include/python2.7" >> $HOME/.bash_profile
echo "export PYTHON_INCLUDE_DIR" >> $HOME/.bash_profile
Wx program running on Canopy 1.4 on OS X "Please run with a Framework build of python"
See https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9 to fix it.
For Linux
Python.h
setenv PYTHON_INCLUDE_DIR /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.1.1975.rh5-x86_64/include/python2.7
# Or
cd /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.1.1975.rh5-x86_64/include
ln -s /sbinlab2/software/python-enthought-dis/canopy-1.4.0-full-rh5-64/appdata/canopy-1.4.1.1975.rh5-x86_64/include/python2.7 python2.7