скрипт bash для деактивации среды conda - PullRequest
0 голосов
/ 11 июня 2019

После предложения пользователя я пересматриваю вопрос, чтобы более узко сосредоточиться на вопросе «почему я не могу запускать команды conda из сценария оболочки».

Моя среда conda по умолчанию называется "py37". Shell запускается, я могу деактивировать:

(py37) pauljohn@delllap-16:Desktop$ conda deactivate
pauljohn@delllap-16:Desktop$

Я хочу создать сценарий оболочки с коротким именем, чтобы выполнить ту же работу. Я пробовал несколько вариантов, например, файл с именем "noconda.sh":

$ cat noconda.sh
#!/bin/bash

eval "conda deactivate"   

Это ошибка, ясно:

 pauljohn@delllap-16:bin$ noconda.sh

CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

Я считаю, что многие другие проекты, которые я использую, работают неправильно, если включены функции conda.

Вы можете спросить, что у меня в .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/pauljohn/LinuxDownloads/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/home/pauljohn/LinuxDownloads/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/pauljohn/LinuxDownloads/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base 
    else
        \export PATH="/home/pauljohn/LinuxDownloads/anaconda3/bin/:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

# help with conda bug accessing gsettings:
# https://github.com/conda-forge/glib-feedstock/issues/19
export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/

conda deactivate
conda activate py37

1 Ответ

0 голосов
/ 17 июня 2019

Кто-то должен был дать мне +1 для публикации этого отличного вопроса:)

Вот исправление.

В конце ~ / .bashrc вставьте это:

alias noconda='conda deactivate'

После этого команда из оболочки "noconda" выполняет свою задачу.

Хотелось бы найти сценарий оболочки, чтобы сделать то же самое, было бы более переносимым для всех учетных записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...