title: How to solve the issue of the conflict of anaconda and virtualenv
body: <p>I was using virtualenv all the time and then I had also installed anaconda. Just now I tried to activate a virtual environment using the way of anaconda like <code>source activate helloworld</code>. (Indeed I don't remember if this is exactly the command I typed in). And then the environment had been activated. But when I tried to run the notebook, it was said that some libraries didn't exist even if I had installed them already in that environment. Not until then did I realize I had activated the wrong environment. And then I close the tab and <code>cd</code> to <code>hellowworld</code> and did <code>source bin/activate</code>. But it was too late. I got this as the output <code>prepending /home/lcc/anaconda3/envs/bin to PATH
  </code> and the environment was not activated expectedly. Do you know how to solve this issue? Thanks!</p>
  
  <p>Here is the full content of the <code>activate</code> file under <code>/hello/world</code>:</p>
  
  <pre><code>#!/bin/bash
  
  # Determine the directory containing this script
  if [[ -n $BASH_VERSION ]]; then
      _SCRIPT_LOCATION=${BASH_SOURCE[0]}
      SHELL="bash"
  elif [[ -n $ZSH_VERSION ]]; then
      _SCRIPT_LOCATION=${funcstack[1]}
      SHELL="zsh"
  else
      echo "Only bash and zsh are supported"
      return 1
  fi
  _CONDA_DIR=$(dirname "$_SCRIPT_LOCATION")
  
  if [ $# -gt 1 ]; then
      (&gt;&amp;2 echo "Error: did not expect more than one argument.")
      (&gt;&amp;2 echo "    (Got $@)")
      return 1
  fi
  
  case "$(uname -s)" in
      CYGWIN*|MINGW32*|MSYS*)
          EXT=".exe"
          ;;
      *)
          EXT=""
          ;;
  esac
  
  # Export whatever PS setting we have, so it is available to Python subprocesses
  export PS1
  
  # Ensure that this script is sourced, not executed
  # Also note that errors are ignored as `activate foo` doesn't generate a bad
  # value for $0 which would cause errors.
  if [[ -n $BASH_VERSION ]] &amp;&amp; [[ "$(basename "$0" 2&gt; /dev/null)" == "activate" ]]; then
      (&gt;&amp;2 echo "Error: activate must be sourced. Run 'source activate envname'
  instead of 'activate envname'.
  ")
      "$_CONDA_DIR/conda" ..activate $SHELL$EXT -h
      exit 1
  fi
  
  "$_CONDA_DIR/conda" ..checkenv $SHELL$EXT "$@"
  if (( $? != 0 )); then
      return 1
  fi
  
  # Ensure we deactivate any scripts from the old env
  #   Note: this empties $@.  Preserve a copy.
  args=$@
  source "$_CONDA_DIR/deactivate"
  
  _NEW_PATH=$("$_CONDA_DIR/conda" ..activate $SHELL$EXT "$args")
  if (( $? == 0 )); then
      export CONDA_PATH_BACKUP="$PATH"
      # export this to restore it upon deactivation
      export CONDA_OLD_PS1=$PS1
  
      export PATH="$_NEW_PATH"
      # Get first path (should be full path prefix of our env)
      # inner string extraction pulls off first path
      # outer string removes /bin if present (on Unix)
      firstpath=${PATH%%:*}
      export CONDA_DEFAULT_ENV="$(echo ${firstpath} | sed "s|/bin$||")" &amp;&gt;/dev/null
      # Legacy support: CONDA_DEFAULT_ENV used to be either env name or full path if given as path.
      #    CONDA_DEFAULT_ENV is now always full path.
      #    Keep CONDA_ENV_PATH around, and have it mirror CONDA_DEFAULT_ENV.
      #    Last date of change: 2016-04-18
      export CONDA_ENV_PATH=$CONDA_DEFAULT_ENV
  
      export PS1="$( "$_CONDA_DIR/conda" ..setps1 $SHELL$EXT "$args" )"
  
      # Load any of the scripts found $PREFIX/etc/conda/activate.d AFTER activation
      _CONDA_D="${CONDA_DEFAULT_ENV}/etc/conda/activate.d"
      if [[ -d "$_CONDA_D" ]]; then
          IFS=$(echo -en "\n\b")&amp;&gt;/dev/null  &amp;&amp; for f in $(find "$_CONDA_D" -iname "*.sh"); do source "$f"; done
      fi
  else
      return $?
  fi
  
  if [[ -n $BASH_VERSION ]]; then
      hash -r
  elif [[ -n $ZSH_VERSION ]]; then
      rehash
  else
      echo "Only bash and zsh are supported"
      return 1
  fi
  </code></pre>