我正在使用Anaconda来管理Python和Jupyter。那就是:
>> which python
>> /home/.../software/anaconda3/bin/python
和
>> which jupyter
>> /home/.../software/anaconda3/bin/jupyter
但是Jupyter的python内核似乎指向Python的系统版本而不是我的本地版本通过Anaconda,因为sys.path
在Jupyter Python 3笔记本中是不同的。另外,jupyter kernelspec list
给出以下内容:
Available kernels:
ir /usr/local/share/jupyter/kernels/ir
matlab /usr/local/share/jupyter/kernels/matlab
python3 /usr/local/share/jupyter/kernels/python3
自docs在第1.5.5节中说明
以来,这似乎并不令人惊讶默认情况下,内核规范将进入系统范围的位置(例如/ usr / local / share / jupyter / kernels)。如果执行--user install,内核规范将进入JUPYTER_DATA_DIR位置。
为了个人理智和组织,我希望我在命令行中使用的Python版本与Jupyter中访问的版本相同。因此,我认为我应该做的是更改我的python3的jupyter kernelspec列表,以便它指向我想要的Anaconda python版本,即/home/.../software/anaconda3/bin/python
。我的问题是:1)确实是我所陈述的首选项的最佳解决方案,以及2)我如何实际更改python3的jupyter kernelspec条目?不确定是否会出现这种情况,但我不想使用虚拟环境 - 我希望在命令行和Jupyter中默认使用相同版本的Python。
答案 0 :(得分:0)
1)/usr/local/
中的Jupyter内核确实是全局安装。但我不明白为什么它不能链接到你的anaconda python3解释器。
2)要将您的anaconda解释器明确链接到您的jupyter安装,您可以运行:
pip install ipykernel
python -m ipykernel install --prefix=/usr/local/ --name "anaconda_kernel"
用于全局安装,或者如果您希望每个用户安装,则更改/usr/local/
。专门为anaconda here
如果您事先将其与jupyter kernelspec remove python3
合并,则可以将您的anaconda内核重置为默认设置。
答案 1 :(得分:0)
我最终将此重新发布到Jupyter Github问题页面,并建议删除/usr/local/share/jupyter/kernels/python3
。这允许Jupyter使用运行Jupyter本身的相同Python(即Anaconda)来查找默认的Python内核,这对我有用。
您可以在Jupyter的Github页面上找到我的帖子,并解释上述解决方案为什么有效here。