Python 使用非bash shell安装Conda
由于未知的“历史”原因,我的工作默认为所有linux和mac机器的tcsh。我们正试图使用Conda向公众发布我们的一系列代码。但Conda似乎是bash唯一的实现,这对世界其他地方来说并不是问题。我无法将其安装到tcsh shell中,并且在Conda中找到了一些对zsh的引用,但我无法判断Conda是否是一个仅限bash的实现,或者它是否会在其他shell中实际工作。虽然我可以很容易地从tcsh终端窗口启动bash,但这只是一个小麻烦Python 使用非bash shell安装Conda,python,bash,shell,anaconda,Python,Bash,Shell,Anaconda,由于未知的“历史”原因,我的工作默认为所有linux和mac机器的tcsh。我们正试图使用Conda向公众发布我们的一系列代码。但Conda似乎是bash唯一的实现,这对世界其他地方来说并不是问题。我无法将其安装到tcsh shell中,并且在Conda中找到了一些对zsh的引用,但我无法判断Conda是否是一个仅限bash的实现,或者它是否会在其他shell中实际工作。虽然我可以很容易地从tcsh终端窗口启动bash,但这只是一个小麻烦 因此,我想知道的是:Conda是否在其他shell类型中
因此,我想知道的是:Conda是否在其他shell类型中工作,如果不工作,原因是什么?在bash或zsh之外使用
Conda
的主要问题是,它需要activate
和deactivate
脚本来修改本地环境,这意味着它们必须是源代码,而不是在子shell中执行。activate
中的第二条语句检查您是否从支持的shell之一运行:
# Determine the directory containing this script
if [[ -n $BASH_VERSION ]]; then
_SCRIPT_LOCATION=${BASH_SOURCE[0]}
elif [[ -n $ZSH_VERSION ]]; then
_SCRIPT_LOCATION=${funcstack[1]}
else
echo "Only bash and zsh are supported"
return 1
fi
对此你无能为力。然而,当我在tcsh
中手动设置PATH
变量时,我很幸运地使用了一个现有的conda环境:如果您将根目录或自定义环境的bin
文件夹前缀为PATH
,您应该能够继续工作
但是,我不确定您是否可以(从未尝试过)在
bash
之外安装conda或修改环境。这是整个讨论的一个非常晚的附加组件。但它可能会帮助其他遇到同样问题的人。不幸的是,我只在tcsh外壳中尝试过这个
如中所述,在bash以外的shell中运行conda不再是什么问题(即使用bash installer.sh)。从康达4.4开始。现在似乎有一个conda activate myenv
功能。
和康达4.6。有一个conda init
脚本,它应该在必要的配置文件(~/.bashrc、~/.tcshrc等)中添加使用conda activate myenv
(而不是source activate myenv)的所有必要内容。因此,它可以与多个壳一起运行
然而,对于Miniconda3和Conda4.6,这似乎仍然不能完美地工作(CondaInit tcsh抛出了一个错误,github上存在一个问题)。
但我找到了一个可能的解决办法。通过将
source/minicondaX/etc/profile.d/conda.csh
添加到~/.tcshrc文件中,您应该能够在tcsh中使用conda activate myenv
所以Conda实际上是围绕bash和zsh shell编写的。“我想我不会冒险让它使用另一个炮弹。”veda905。差不多就是它的大小。他们的目标是大多数用户,这意味着在未来几年中主要是bash和更多的zsh。虽然这在直接意义上是不幸的,但它可能会促使您的公司使用比tcsh功能更丰富的shell。