【发布时间】:2019-06-10 22:11:40
【问题描述】:
根据用户的建议,我正在修改问题,以更狭隘地关注“为什么我不能从 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
【问题讨论】:
-
你试过
source deactivate -
你可以先
conda deactivate然后conda activate py37在你的.bashrc。那么摆脱 conda 的只是一个conda deactivate,而不是 2 个。 -
@darthbith。这有点帮助。 1 deactivates 比 2 好。但我仍然想制作一个 shell 脚本来更轻松地完成这项工作。
-
@shn "source ..." 在较新的 Anaconda 中被替换为 "conda ..."。据我所知,使用 source 具有相同的效果 (docs.conda.io/projects/conda/en/latest/user-guide/tasks/…)。