加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows上使用带有cygwin的anaconda环境

发布时间:2020-12-13 22:41:08 所属栏目:Windows 来源:网络整理
导读:尝试通过 Windows NT上的cygwin界面使用anaconda设置环境,并且失败. 创建环境(conda create -n test_env)运行正常.但是激活test_env会失败. 我尝试用它来破解它: export PATH=/cygdrive/c/users/nick/anaconda3/envs/test:$PATH 这修复了一些行为(python指
尝试通过 Windows NT上的cygwin界面使用anaconda设置环境,并且失败.

创建环境(conda create -n test_env)运行正常.但是激活test_env会失败.

我尝试用它来破解它:

export PATH=/cygdrive/c/users/nick/anaconda3/envs/test:$PATH

这修复了一些行为(python指向正确的python).但是,如果我然后执行“conda install”命令,它将安装到根anaconda目录中,而不是环境中.也许导出是bash会话的本地导出,conda调用不同版本的PATH?有一种方法可以修改PATH全局吗?

在解决了这个问题很长一段时间后,我认为我已经实现了将Anaconda的python(和相关环境)集成到Cygwin中的合理且可行的方法.假设您同时使用Cygwin和Anaconda,要从Cygwin访问所有Anaconda工具,.bash_profile中的以下设置似乎可以解决问题. (我只包含与集成相关的.bash_profile部分…希望我不会无意中遗漏某些内容.)

这个设置基本上做了三件事.首先,用户需要将目录$CONDA_BASE_DIR显式设置为conda / anaconda / miniconda的基本环境的安装位置.其次,.bash_profile中有一个功能,可以使用shell变量$CONDA_DEFAULT_ENV跟踪当前的conda环境.最后,我们定义了一个别名cyg-conda和一个cyg-activate函数,用作标准conda和activate命令的替换命令.请注意,变量名称$CONDA_DEFAULT_ENV是特殊的,并由实际的conda命令在内部使用.

使用这个设置,我能够以与通常使用conda相同的方式使用cyg-conda和cyg-activate,并在Anaconda命令提示符下激活,同时使环境可用于我的Cygwin bash shell.

当然愿意接受改进建议等.

###############################################################################

#  Anaconda Environment Selection - Plese set CONDA_BASE_DIR to the directory
#  containing the base installation of anaconda/miniconda.

export CONDA_BASE_DIR=/cygdrive/c/Users/Patrick/Miniconda3

#  Proxy Servers & Network Setup (if needed)

export HTTP_PROXY=
export HTTPS_PROXY=

#  IMPORTANT - Ignore carriage returns when using a Cygwin environment.

export SHELLOPTS
set -o igncr

###############################################################################

#  Manage conda environments for Python.  We check the environment variable
#  $CONDA_DEFAULT_ENV to see which environment is desired.  The default (root)
#  environment will be chosen if nothing is specified.  Note that this variable
#  will be explicitly managed by the cyg-activate ( ) function we have defined
#  below,specifically for the purpose of changing environments.  The root
#  environment is also handled slightly different from the others when it comes
#  to setting the CONDA_DEFAULT_ENV variable.

if [ ${CONDA_DEFAULT_ENV} ] && [ ${CONDA_DEFAULT_ENV} != 'root' ] 
then
    #  SELECT ONE OF THE NON-DEFAULT ENVIRONMENTS
    export CONDA_PREFIX=${CONDA_BASE_DIR}/envs/${CONDA_DEFAULT_ENV}
else
    #  SELECT THE DEFAULT ENVIRONMENT (and set CONDA_DEFAULT_ENV full path)
    export CONDA_DEFAULT_ENV=root
    export CONDA_PREFIX=${CONDA_BASE_DIR}
fi

###############################################################################

#  Define cyg-conda and cyg-activate to facilitate management of conda.

alias cyg-conda=${CONDA_BASE_DIR}/Scripts/conda.exe

cyg-activate() {
    export CONDA_DEFAULT_ENV=$1
    source ~/.bash_profile
    cyg-conda info --envs
}

###############################################################################

#  PATH - ALl of the anaconda/miniconda path entries appear first.

PATH=
PATH=$PATH:$CONDA_PREFIX
PATH=$PATH:$CONDA_PREFIX/Library/mingw-w64/bin
PATH=$PATH:$CONDA_PREFIX/Library/usr/bin
PATH=$PATH:$CONDA_PREFIX/Library/bin
PATH=$PATH:$CONDA_PREFIX/Scripts
PATH=$PATH:$HOME/scripts
PATH=$PATH:$HOME/local/bin
PATH=$PATH:/usr/local/bin
PATH=$PATH:/usr/bin

export PATH

###############################################################################

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读