Pycharm中anaconda创建激活虚拟环境出现错误:Your shell has not been properly configured to use ‘conda activate’.
前言
之前用pycharm,安装的第三方库都是默认放在C:\Users*******\Python\Python36当中
在用anaconda创建虚拟环境后,第三方库都安装在了annaconda下的evns中的以虚拟环境命名的文件夹当中,当不同程序的第三方库要适应不同版本需求时,就不需要像前者先卸载在安装,而是直接可以创建一个独立的虚拟环境,与其他程序的虚拟环境互不干扰
而在安装完anaconda后创建并激活虚拟环境时,遇到了一些问题。
问题
在用命令
conda create -n 虚拟环境名
创建一个新环境后,就要用
conda activate 虚拟环境名
来激活虚拟环境,错误如下:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.If using 'conda activate' from a batch script, change yourinvocation to 'CALL conda.bat activate'.To initialize your shell, run $ conda init <SHELL_NAME>Currently supported shells are: - bash - cmd.exe - fish - tcsh - xonsh - zsh - powershellSee 'conda init --help' for more information and options.IMPORTANT: You may need to close and restart your shell after running 'conda init'.
部分翻译如下:
CommandNotFoundError:您的shell未正确配置为使用“conda activate”。如果从批处理脚本中使用“conda activate”,请更改调用“CALL conda.bat activate”。
但如果是用source activate gluon就能正常激活(这里关闭虚拟环境也是用conda deactivate),反复几次之后发现每次重启终端都需要用source才能激活,用过source之后的同一个终端下才能用conda激活。
随后根据报错提示,重新配置conda的shell环境(本文用的是bash):conda init bash
按理说,重启终端后,默认环境会显示是base
此处参考: conda激活环境:CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘
然后再执行激活命令即可,但是重启终端后,我的默认环境并没有显示bash
走弯路1
然后找了另一个办法:
修改环境变量----->D:\ProgramData\Anaconda3\Scripts (必须删除,不能保留,否则报错)
改成 D:\ProgramData\Anaconda3\condabin
这个是系统变量的PATH,因为安装anaconda时我选择了默认添加到环境变量,所以这个时自动添加的,后续事实证明不能随便改
此处参考: CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘解决方法
然而,改完之后更离谱,conda直接识别不了(错误:bash: conda: command not found),一切以conda开头的命令显示bash找不到,看到这里我明白了,上一步的bash已经安装成功了,或者说在我安装前他就可能已经存在了,但为什么他不显示呢?
走弯路2
在bash识别不了conda,时我还参考了这篇文章:conda在shel脚本中提示未初始化
和这篇文章:【解决】bash: conda: command not found
改了/.bashrc文件,并重新执行,然而并没有什么卵用
然后
回到正轨
我找到了这篇文章:PyCharm:terminal从PS前缀变为base环境前缀
1.打开File->settings->Tools->Terminal,找到Application Settings中的Shell path,再在下拉框中选择cmd.exe,点击Apply
重启Terminal终端,则发现显示bash了,我是直接显示虚拟环境名字了,也不知道为啥,可能是之前某一步起了作用?
不过结果就是激活成功,那就可以了,over!