我的Jupyter
笔记本安装了python 2
内核。我不明白为什么。安装时我可能搞砸了。我已经python 3
安装好了。如何将其添加到Jupyter
?这是默认Jupyter
安装python3 -m install jupyter
并在浏览器中打开的屏幕截图,jupyter notebook
如下所示:
我的Jupyter
笔记本安装了python 2
内核。我不明白为什么。安装时我可能搞砸了。我已经python 3
安装好了。如何将其添加到Jupyter
?这是默认Jupyter
安装python3 -m install jupyter
并在浏览器中打开的屏幕截图,jupyter notebook
如下所示:
Answers:
这在Ubuntu 16.04上对我有用:
python2 -m pip install ipykernel
python2 -m ipykernel install --user
python3 -m pip install ipykernel
python3 -m ipykernel install --user
参考文档:
适用于Python 2和3的内核。安装IPython内核-IPython文档。
确保已ipykernel
安装并用于ipython kernel install
将kernelspec放置在python2的正确位置。然后ipython3 kernel install
用于Python3。现在,无论您使用还是,(都已弃用后两个)jupyter notebook
,您都应该能够在这两个内核之间进行选择。ipython notebook
ipython3 notebook
请注意,如果要安装特定的Python可执行文件,可以使用以下技巧:
path/to/python -m ipykernel install <options>
这在使用环境(venv,conda等)时起作用,并且<options>
让您命名内核(请参阅参考资料--help
)。所以你可以做
conda create -n py36-test python=3.6
source activate py36-test
python -m ipykernel install --name py36-test
source deactivate
现在,您会py36-test
在下拉菜单中获得一个名为内核的名称,以及其他名称。
请参阅在IPython Notebook中同时使用Python 2.x和Python 3.x,其中包含更多最新信息。
--user
或--prefix
需要用户安装。它可以用于venvs,但是它的逻辑尚不成熟。您需要复制kernelspec并显式引用python二进制文件。
ipython kernelspec install-self
起作用-使用source activate python3
相同的命令运行然后激活Python3ipython kernelspec install-self
sudo apt-get remove ipython3 ipython3-notebook; sudo apt-get install pip3; sudo pip3 install ipython; sudo ipython kernelspec install-self; sudo ipython3 kernelspec install-self
。然后我ipython notebook
正常启动时可以选择一个新的python3笔记本。
pip install -U jupyter
pip3 install jupyter
ipython3 kernelspec install-self
ipython3 kernelspec install-self
命令,它将python3内核替换为python2。比你。
ipython3 kernelspec install-self
中运行ipython kernel install。该命令不再起作用,jupyter kernelspec install-self
已弃用。
PYTHONPATH
在上述每个步骤中都做什么?
对于jupyter / ipython的最新版本:请使用jupyter kernelspec
全文:https : //ipython.readthedocs.io/en/latest/install/kernel_install.html
$ jupyter kernelspec list
Available kernels:
python2 .../Jupyter/kernels/python2
python3 .../Jupyter/kernels/python3
在我的情况下,python3内核设置被破坏了,因为py3.5链接不再存在,由py3.6代替
去掉:
$ jupyter kernelspec uninstall python3
添加一个新的: 使用您想要添加的Python并指向运行木星的python:
$ /path/to/kernel/env/bin/python -m ipykernel install --prefix=/path/to/jupyter/env --name 'python-my-env'
请参阅https://ipython.readthedocs.io/en/6.5.0/install/kernel_install.html#kernels-for-different-environments中的更多示例
再次列出:
$ jupyter kernelspec list
Available kernels:
python3 /usr/local/lib/python3.6/site-packages/ipykernel/resources
python2 /Users/stefano/Library/Jupyter/kernels/python2
Doc:https : //jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs
可用的内核kernels
在Jupyter数据目录下的文件夹下列出(有关详细信息,请参见http://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html)。
例如在macosx上 /Users/YOURUSERNAME/Library/Jupyter/kernels/
内核仅通过kernel.json
文件来描述。对于/Users/me/Library/Jupyter/kernels/python3/kernel.json
{
"argv": [
"/usr/local/opt/python3/bin/python3.5",
"-m",
"ipykernel",
"-f",
"{connection_file}"
],
"language": "python",
"display_name": "Python 3"
}
您可以使用kernelspec
命令(如上所述),而不是手动进行操作。这是以前可以通过现在的IPython通过jupyter(http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments - https://jupyter-client.readthedocs.io/ zh / latest / kernels.html#kernelspecs)。
$ jupyter kernelspec help
Manage Jupyter kernel specifications.
Subcommands
-----------
Subcommands are launched as `jupyter kernelspec cmd [args]`. For information on
using subcommand 'cmd', do: `jupyter kernelspec cmd -h`.
list
List installed kernel specifications.
install
Install a kernel specification directory.
uninstall
Alias for remove
remove
Remove one or more Jupyter kernelspecs by name.
install-self
[DEPRECATED] Install the IPython kernel spec directory for this Python.
To see all available configurables, use `--help-all`
顺便说一下,与这个问题并不严格相关,但是还有许多其他可用的内核... https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
jupyter kernelspec install $HOME/.pyenv/versions/metrics/bin --name=metricskernel --user
,我得到了Installed kernelspec metricskernel in $HOME/.local/share/jupyter/kernels/metricskernel
,但是里面没有kernel.json,因此没有列出kernelspec list
。而是在其中复制了一堆脚本$HOME/.pyenv/versions/metrics/bin
。@JamesKPolk与您的问题类似吗?你有能力解决吗?
如果您使用的是anaconda发行版,那么这对我(在macintosh上)有效:
$ conda create -n py3k python=3 anaconda
$ source activate py3k
$ ipython kernelspec install-self
只是最后一条命令的注释:
(py3k)Monas-MacBook-Pro:cs799 mona$ ipython kernelspec install-self
[TerminalIPythonApp] WARNING | Subcommand `ipython kernelspec` is deprecated and will be removed in future versions.
[TerminalIPythonApp] WARNING | You likely want to use `jupyter kernelspec` in the future
[InstallNativeKernelSpec] WARNING | `jupyter kernelspec install-self` is DEPRECATED as of 4.0. You probably want `ipython kernel install` to install the IPython kernelspec.
[InstallNativeKernelSpec] Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3
(py3k)Monas-MacBook-Pro:cs799 mona$ ipython kernel install
Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3
通过上述步骤在OSX Yosemite中进行测试,jupter notebook
并在浏览器中输入并创建新笔记本,您将看到以下屏幕截图:
install-self
现在已弃用。
在macOS Sierra(10.12.3)上,以下命令对我有用
python3 -m pip install ipykernel
python3 -m ipykernel install --user
使用jupyter kernelspec列表检查它可用的内核:python3 / Users / admin / Library / Jupyter / kernels / python3 python2 / anaconda2 / share / jupyter / kernels / python2
打开终端(对于窗口,则为cmd),然后运行以下命令:(在窗口上,在第二行中删除“ source”。)
conda create -n py35 python=3.5
source activate py35
conda install notebook ipykernel
ipython kernel install --user --name=python3.5
我尝试了一些方法,但是它不起作用,然后我发现了这种方法。它与我合作。希望能有所帮助。
sudo apt-get install python3-pip python3-dev
pip3 install -U jupyter
在ElementaryOS Freya(基于Ubuntu 14.04)上,没有其他答案对我有任何帮助。我正在
[TerminalIPythonApp]警告| 找不到文件:“ kernelspec”
quickbug在Matt的回答下描述的错误。我必须先做:
sudo apt-get install pip3
, 然后
sudo pip3 install ipython[all]
此时,您可以运行Matt建议的命令。即:ipython kernelspec install-self
和ipython3 kernelspec install-self
现在,当我启动ipython notebook
然后打开笔记本时,我可以从“内核”菜单中选择Python 3内核。
我设法安装了除Python2之外的Python3内核。这是我的方法:
最新的工作链接可以在这里找到。
实际的代码是:
! mkdir -p ~/.ipython/kernels/python3
%%file ~/.ipython/kernels/python3/kernel.json
{
"display_name": "IPython (Python 3)",
"language": "python",
"argv": [
"python3",
"-c", "from IPython.kernel.zmq.kernelapp import main; main()",
"-f", "{connection_file}"
],
"codemirror_mode": {
"version": 2,
"name": "ipython"
}
}
该解决方案在官方文档中有详细记录:https : //ipython.readthedocs.org/en/latest/install/kernel_install.html
我尝试了第一种方法。由于我已经ipykernel
安装了,只需运行即可python3 -m ipykernel install --user
解决问题。
我这边最短,最好的解决方案
conda create --name py3-ml python=3.6
conda install ipykernel
source activate py3-ml # or conda activate py3-ml
python -m ipykernel install --user --name py3-ml
添加内核意味着您要使用Jupyter Notebook
未在列表中显示的python版本。
简单方法-使用所需的python版本启动笔记本,假设我已python3.7
安装,然后从终端(cmd)使用以下命令运行笔记本:
python3.7 -m notebook
有时python3.7
使用别名代替安装py, py3.7, python
。
这些答案中的大多数(如果不是全部)都假设您很高兴在全球范围内安装软件包。如果您满足以下条件,则此答案适用于您:
(注意:此答案将python2内核添加到python3-jupyter安装中,但从概念上讲,它很容易互换。)
先决条件
创建一个python3 venv并安装jupyter
python3 -m venv .venv
. .venv/bin/activate
pip install jupyterlab
。这将在本地创建运行笔记本的所有基本基础架构。$PWD/.venv/share/jupyter/kernels/python3/
。如果要在其他地方安装和运行jupyter,并且仅使用此venv来组织所有内核,则只需要:pip install ipykernel
jupyter lab
(并在浏览器中转到控制台中显示的URL)。到目前为止,您只会看到一个名为“ Python 3”的内核选项。(此名称由文件中的display_name
条目确定kernel.json
。)添加一个python2内核
ctrl-c
deactivate
virtualenv -p python2 .venv2
. .venv2/bin/activate
pip install ipykernel
。这也将为此python2 venv生成默认内核规范.venv2/share/jupyter/kernels/python2
python -m ipykernel install --prefix=$PWD/.venv
。这基本上只是将目录复制$PWD/.venv2/share/jupyter/kernels/python2
到$PWD/.venv/share/jupyter/kernels/
deactivate; . .venv/bin/activate; jupyter lab
。如果一切顺利,您将Python 2
在内核列表中看到一个选项。您可以通过对简单的print 'Hellow world'
vs print('Hellow world')
命令的处理来测试它们是否正在运行真正的python2 / python3解释器。TL; DR
R -e "install.packages('IRkernel',repos='https://cran.mtu.edu/')"
。(这将安装到您的标准R-packages位置;对于Mac上自家安装的R,它看起来像/usr/local/Cellar/r/3.5.2_2/lib/R/library/IRkernel
。)R -e "IRkernel::installspec(prefix=paste(getwd(),'/.venv',sep=''))"
。如果现在查找,$PWD/.venv/share/jupyter/kernels/
将找到一个ir
目录,其中kernel.json
包含类似于以下内容的文件:{
"argv": ["/usr/local/Cellar/r/3.5.2_2/lib/R/bin/R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
"display_name": "R",
"language": "R"
}
总而言之,内核只是从kernel.json
Jupyter在.../share/jupyter/kernels
目录中查找并在其接口中列出的文件中,调用特定于语言的可执行文件。在这种情况下,将调用R来运行函数IRkernel::main()
,该函数会将消息来回发送给Jupiter服务器。同样,python2内核只是“调用”了带有模块的python2解释器,ipykernel_launcher
如.venv/share/jupyter/kernels/python2/kernel.json
等等所示。
如果您想一次运行所有这些指令,这是一个脚本。
我在python-2上遇到了同样的错误。我想运行python-2 jupyter笔记本会话,但默认情况下我正在获取python-3。因此,最简单的解决方法是为python-2打开Anaconda终端并键入'jupyter notebook',它将启动jupyter-notebook会话而不会出现任何问题。可以用python-3尝试类似
python2
是您的默认内核。由于您将ipython安装到python2
解释器中,因此您也将其python2
作为默认内核。如果改为安装到中python3.x
,则默认情况下将具有python3
内核。