今天尝试不用cmd和power shell,而用git bash来进行git clone以及虚拟环境的创建等操作。但在conda activate my_venv时出现问题,以下为网上的各种解决方法:
1、conda init 或者conda init bash等
对我没用
2、编辑.bashrc配置文件
nano ~/.bashrc
在.bashrc文件中添加以下内容:
# Load Conda
source /c/ProgramData/anaconda3/etc/profile.d/conda.sh
保存退出编辑模式(ctrl+o保存,回车确认标题,ctrl+x退出编辑模式)
然后重新启动GIT BASH,或者手动在命令行输入source ~/.bashrc加载上面的配置。
然而我再次激活环境还是失败。
后面查到了知乎的这篇文章,在git中使用conda环境(anaconda) - 知乎,用ta的方法就可以了!!!(磕头
echo ". '${PWD}'/conda.sh" >> ~/.bashrc
然鹅,我寻思了一下这两句话的作用不是一样的嘛,为啥后面可以前面就不行。
所以我后面试着把下面echo命令添加进去的这句话注释掉了,这下前面的又可行了。搞不懂啊,但是不管了,搞定万岁!!!
最后我的.bashrc文件如下所示:
然后我又好奇地打开了WSL的Ubuntu20.04子系统下的.bashrc文件,其中关于conda初始化的部分如下:
__conda_setup="$('/home/ubuntu2004/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/ubuntu2004/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/ubuntu2004/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/ubuntu2004/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
大概作用为:
- 尝试通过
conda shell hook
设置 Conda 环境。 - 如果失败,则手动加载
conda.sh
脚本,或者直接将 Conda 的路径添加到环境变量中。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
顺便记录一下由此学到的一些东西:
Git Bash 是一个运行在 Windows 上的终端工具,用来提供 Unix/Linux 风格的命令行环境。它是由 Git for Windows 提供的,基于一个轻量级的模拟环境(使用了 MINGW64 和 MSYS2)。由于Git Bash 依赖的是 Windows 系统,因此其默认将用户的主目录设置为与 Windows 系统的主目录一致,以方便访问用户文件。
PS:注意区别Git Bash 和WSL,前者虽然命令行是linux格式,但是并没有独立的Linux内核,而后者是直接虚拟出来一个Linux内核在计算机上。对比二者用户主目录路径就知道了,前者路径为C:\Users\13959,后者为\\wsl.localhost\Ubuntu-20.04\home\ubuntu2004。
(1)git bash的 /(根目录) 和 ~(用户主目录)
/ 指向的是git bash环境的虚拟根目录,模拟Linux/Unix环境(类似于“计算机”视图,易知在linux中这里是不能更改的,能改的只有用户主目录,所以这里尝试touch命令会显示permission denied)。/在本机中的位置即为你安装GIT的位置,例如我的为 C:\Program Files\Git,可以发现ls结果是对的上的,如下:
~(用户主目录)就是当前Windows系统的用户主目录,例如我的是C:\Users\13959(这个就对应着linux系统的用户主目录/home/username,所以能自定义的也是这个用户主目录。在用户主目录这里,就可以尝试touch命令来创建该目录下的文件了)
(2)cp、cd、echo指令,命令忘记了可以直接查浏览器,没什么好记的
cd mulu/和cd mulu效果是一样的,都是切换到当前工作目录下的mulu子目录。前者的后缀/表示mulu也是给目录文件(即文件夹)