Bash использует Python от Anaconda, даже если он отключен - PullRequest
2 голосов
/ 15 октября 2019

Резюме: Даже когда я деактивирую среду conda с помощью conda deactivate, когда я набираю python (или python3) на bash, запускается python из conda.

Справочная информация: Обычно я использую pipenv для обработки зависимостей Python. Но ранее я также установил conda, чтобы обучать некоторые модели ML с помощью GPU, потому что я не могу управлять GPU с помощью pipenv.

Но я не очень хочу использовать и conda, и pipenv, поэтому я решилчтобы избавиться от conda, чтобы увидеть, смогу ли я запустить GPU только с помощью pipenv.

Но когда я пытаюсь деактивировать conda и работать с Python по умолчанию, он все еще там:

(base) user@tower:~$ conda deactivate
user@tower:~$ python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
user@tower:~$ python3
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

ЧтоВы предлагаете, я могу попробовать запустить некоторый код Python без использования Conda? Если я не могу, как я могу полностью избавиться от Конды?

Я открыт для любых советов.

Информация 1: Вывод $PATH до ипосле деактивации он аналогичен:

-bash: /home/foouser/.local/bin:/home/foouser/.local/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/condabin:/usr/local/cuda-9.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/foouser/.vimpkg/bin: No such file or directory

Раздел Anaconda в ~/.bashrc:

# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/foouser/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/home/foouser/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/foouser/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/home/foouser/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

# added by Anaconda3 installer
export PATH="/home/foouser/anaconda3/bin:$PATH"

export PATH="/home/foouser/.local/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/condabin:/usr/local/cuda-9.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/foouser/.vimpkg/bin"

Информация 2: Вывод which -a python:

/home/foouser/anaconda3/bin/python
/usr/bin/python

Правка-1: Отредактировано bashrc после предложения:

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

export PATH="/home/foouser/.local/bin:$PATH"

# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/foouser/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/home/foouser/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/foouser/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/home/foouser/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

# added by Anaconda3 installer
# export PATH="/home/foouser/anaconda3/bin:$PATH"

# export PATH="$PATH:/home/foouser/.vimpkg/bin"
# export PATH="/home/foouser/.local/bin:$PATH"
# export PATH="/home/foouser/.local/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/condabin:/usr/local/cuda-9.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/foouser/.vimpkg/bin"                                                                                                                                                                                        

1 Ответ

1 голос
/ 18 октября 2019

Проблема заключается в следующих строках, которые противоречат рекомендациям пост-Conda v.4.4 (т. Е. Не нужно вручную манипулировать PATH для добавления Conda):

# added by Anaconda3 installer
export PATH="/home/foouser/anaconda3/bin:$PATH"

export PATH="/home/foouser/.local/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/bin:/home/foouser/anaconda3/condabin:/usr/local/cuda-9.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/foouser/.vimpkg/bin"

Первый должен быть полностью удален. Во втором должны быть удалены все пути, содержащие anaconda3. Кроме того, он полностью перезаписывает ваш оригинал PATH. Вы должны переработать его так, чтобы только то, что вам нужно было добавить вручную, было добавлено, например,

export PATH="/home/foouser/.local/bin:$PATH"

или добавлено, например,

export PATH="$PATH:/home/foouser/.vimpkg/bin"

Я бы переместил это до# >>> conda init >>> раздел.

...