Активируйте conda после установки из файла bash - PullRequest
0 голосов
/ 05 июля 2019

У меня есть задача создать bash-файл, в который Conda установлена ​​из исходного репозитория, и после этого мне нужно активировать его, чтобы понизить версию Python или установить некоторые пакеты (с использованием conda), такие как graphviz или pygraphviz.Все это просили сделать в одном файле bash, но в случае, если это невозможно, я мог бы сделать это несколькими способами, но пытаясь уменьшить количество команд, которые должен набрать пользователь (для того, чтобы любой сотрудник мог загрузитьвся среда сразу)

Я видел некоторые ответы, как в https://askubuntu.com/questions/849470/how-do-i-activate-a-conda-environment-in-my-bashrc, но ни один из них не работал для моей среды.

#!/bin/bash 

if [ "$(whoami)" != "root" ]
then
    echo "Root privileges needed."
    exit 1
fi


echo "Initiating conda installation...!"
dpkg --configure -a
cd /tmp
curl -O https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
echo -ne '\nyes\n\nyes' | bash $(dirname "$0")/Anaconda3-2019.03-Linux-x86_64.sh

source ~/.bashrc

conda install python=3.6.2

Моя цель была бы, чтобы однаждыон загружается, чтобы иметь возможность получать его из выходных данных, которые он оставляет в .bashrc, а затем устанавливать Python, используя команду conda в одном и том же скрипте bash.Как мне это сделать?Вывод, который я получаю прямо сейчас:

installing: pytest-doctestplus-0.3.0-py37_0 ...
installing: pywavelets-1.0.2-py37hdd07704_0 ...
installing: scipy-1.2.1-py37h7c811a0_0 ...
installing: bkcharts-0.2-py37_0 ...
installing: dask-1.1.4-py37_1 ...
installing: patsy-0.5.1-py37_0 ...
installing: pytables-3.5.1-py37h71ec239_0 ...
installing: pytest-astropy-0.5.0-py37_0 ...
installing: scikit-image-0.14.2-py37he6710b0_0 ...
installing: scikit-learn-0.20.3-py37hd81dba3_0 ...
installing: astropy-3.1.2-py37h7b6447c_0 ...
installing: statsmodels-0.9.0-py37h035aef0_0 ...
installing: seaborn-0.9.0-py37_0 ...
installing: anaconda-2019.03-py37_0 ...
installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> WARNING: The conda.compat module is deprecated and will be removed in a future release.
no change     /home/developer/anaconda3/condabin/conda
no change     /home/developer/anaconda3/bin/conda
no change     /home/developer/anaconda3/bin/conda-env
no change     /home/developer/anaconda3/bin/activate
no change     /home/developer/anaconda3/bin/deactivate
no change     /home/developer/anaconda3/etc/profile.d/conda.sh
no change     /home/developer/anaconda3/etc/fish/conf.d/conda.fish
no change     /home/developer/anaconda3/shell/condabin/Conda.psm1
no change     /home/developer/anaconda3/shell/condabin/conda-hook.ps1
no change     /home/developer/anaconda3/lib/python3.7/site-packages/xonsh/conda.xsh
no change     /home/developer/anaconda3/etc/profile.d/conda.csh
no change     /home/developer/.bashrc
No action taken.
If you'd prefer that conda's base environment not be activated on startup, 
   set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

Thank you for installing Anaconda3!

===========================================================================

Anaconda and JetBrains are working together to bring you Anaconda-powered
environments tightly integrated in the PyCharm IDE.

PyCharm for Anaconda is available at:
https://www.anaconda.com/pycharm

./environment_set_test.sh: line 22: conda: command not found

Вот .bashrc после его установки:

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