Как решить проблему конфликта анаконды и виртуальности

Я все время использовал virtualenv, а затем я также установил анаконду. Только сейчас я попытался активировать виртуальную среду, используя способ анаконды, какsource activate helloworld, (Действительно, я не помню, если это именно та команда, которую я набрал). И тогда среда была активирована. Но когда я попытался запустить ноутбук, мне сказали, что некоторые библиотеки не существуют, даже если я уже установил их в этой среде. Только тогда я понял, что активировал не ту среду. А потом я закрываю вкладку иcd вhellowworld и сделалsource bin/activate, Но было слишком поздно. Я получил это в качестве выводаprepending /home/lcc/anaconda3/envs/bin to PATH и среда не была активирована ожидаемым образом. Знаете ли вы, как решить эту проблему? Спасибо!

Вот полное содержаниеactivate файл под/hello/world:

#!/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
    (>&2 echo "Error: did not expect more than one argument.")
    (>&2 echo "    (Got [email protected])")
    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 ]] && [[ "$(basename "$0" 2> /dev/null)" == "activate" ]]; then
    (>&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 "[email protected]"
if (( $? != 0 )); then
    return 1
fi

# Ensure we deactivate any scripts from the old env
#   Note: this empties [email protected]  Preserve a copy.
[email protected]
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$||")" &>/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")&>/dev/null  && 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

Ответы на вопрос(1)

Из вашего вопроса не ясно, что вы ожидаете от «активации». Активирует virtualenv или активирует среду conda.

Когда вы устанавливаете миниконду или анаконду, вам предоставляется возможность добавить их в PATH. Если вы это сделаете, то, вероятно, это всегда происходит до того, как ваш сценарий активации virtualenv. Вы можете переименовать одно или другое, или создать псевдоним для virtualenv, который вызывает его с абсолютным путем к скрипту активации. Вы также можете переместить Anaconda так, чтобы она добавлялась, а не добавлялась, но тогда всегда будет использоваться активация virtualenv, а не conda (исключая абсолютные пути).

Чтобы добавить путь к conda, посмотрите в ~ / .bashrc или ~ / .bash_profile и измените

export PATH=<anaconda path>:$PATH

в

export PATH=$PATH:<anaconda path>

Ваш ответ на вопрос