使用系统:ubuntu18.04
故事起源于在jupyter notebook 里面导入torch库时报错:
原因:当前虚拟环境中无torch这个库
解决方案:切换到一个已经安装完pytorch库的虚拟环境。
搜索:“anaconda切换虚拟环境”
参考:
Anaconda查看、创建、切换虚拟环境_AIHUBEI的博客-CSDN博客_anaconda切换虚拟环境
在终端输入语句:
①conda env list
(为了查看当前已创建的环境)
②conda activate XXXXX
(XXXXX为除base外的另一个虚拟环境,不同人的不一样。)
结果输入语句②切换虚拟环境时报错:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init
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'.
搜索:“CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init
参考:
CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘._sdnuwjw的博客-CSDN博客
原因:
- 提示内容已经给出原因,当前使用的 shell 没有配置好 conda activate,需要运行 conda init 初始化 shell
解决方案:对正在使用的shell运行初始化语句。
新问题:当前使用的是哪个shell?
搜索:“anaconda查看当前使用的shell”
参考:教你如何查看linux当前shell - 知乎
终端输入语句:
echo $SHELL
运行结果:
发现正在使用的是bash这个shell。
于是输入初始化指令:
conda init bash
之后便可以切换虚拟环境了。
切换结果如图:(从默认的base切换成我自己先前创建的pythonProject)
之后在pythonProject这个虚拟环境中安装pytorch(我早已经安过了,就跳过了pytorch的安装部分。),参考
如何让Jupyter Notebook支持pytorch_cqldqsb的博客-CSDN博客_jupyter pytorch
(思路:让jupyter notebook 使用时调用安装过pytorch的虚拟环境,即可在jupyter notebook里导入torch库。)
按照上面的教程,在pythonProject虚拟环境中输入指令:
conda install nb_conda
运行截图:(注意最左边的虚拟环境,显示的是pythonProject,也就是我们更换之后的环境。)
之后再输入:
conda install ipykernel
运行截图:
之后打开jupyter notebook。
jupyter notebook
运行截图:
发现此时点击新建时的notebook有变化:
(之前的python 3 后面没有ipykernel字样)
torch库也可以导入了。
至此问题被解决。
疑惑:
如何让Jupyter Notebook支持pytorch_cqldqsb的博客-CSDN博客_jupyter pytorch
这篇博客原作者在操作完后,新增了两个环境;而我的只是在原来的python 3 后面加上了ipykernel字样。不知道为什么会有这样的差异。(而且我还看到过我的也新增了conda的虚拟环境,只是这个虚拟环境在创建notebook时会显示内核无法使用,只能换成ipykernel的内核。这个页面被我叉掉了之后,重新打开jupyter notebook,可选的虚拟环境就变成了只有python 3(ipykernel)这一个的结果。不理解为什么会出现这样的情况。)
等等。
我发现,重新打开终端,在base环境下打开jupyter notebook ,就会出现三个可选虚拟环境:
不过这时创建新notebook时选用conda里的pythonProject虚拟环境, 内核又可以用了,导入torch库也没问题。
对比可以发现,conda里的虚拟环境,pythonProject可以导入torch库;而root不可以。
这也许是之前pythonProject安装过pytorch的缘故。
果然,在终端里切换成pythonProject虚拟环境再打开jupyter notebook,就会只显示一种虚拟环境。



