Difference between revisions of "Epd canopy"
Line 66: | Line 66: | ||
PATH="$VIRTUAL_ENV/bin:$PATH" | PATH="$VIRTUAL_ENV/bin:$PATH" | ||
export PATH | export PATH | ||
− | |||
# unset PYTHONHOME if set | # unset PYTHONHOME if set |
Revision as of 12:43, 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
For all users
Each user needs to put in their .cshrc file
source /sbinlab2/software/cshrc