在用户提出建议之后,我正在修订此问题,以更加集中地关注“为什么我不能从shell脚本运行conda命令”这一问题。
我的默认conda环境名为“ py37”。 Shell启动,我可以停用:
(py37) pauljohn@delllap-16:Desktop$ conda deactivate
pauljohn@delllap-16:Desktop$
我想用一个短名称创建一个shell脚本,以完成相同的工作。我尝试了几种变体,例如,一个名为“ 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
答案 0 :(得分:0)
有人应该给我+1,以发布这个好问题:)
这里是解决方法。
在〜/ .bashrc的末尾,插入以下内容:
alias noconda='conda deactivate'
然后,从外壳“ noconda”执行命令即可完成操作。
希望我能找到可以完成相同操作的shell脚本,并且跨帐户更便于移植。
答案 1 :(得分:0)
根据此answer,如果使用sh
启动bash -i noconda.sh
文件,则conda deactivate
可以正常工作。检查原始答案以找出原因。