我使用i python笔记本,希望能够选择在ipython中创建2.x或3.x python笔记本。
我最初吃过Python。对于Python,必须更改一个全局环境变量来选择您想要的Python版本,然后才能启动IPython。这不是我要找的,所以我卸载了anaconda,现在已经使用macports和pip建立了自己的安装。看来我还得用
1
| port select --set python <python version> |
在python 2.x和3.x之间切换,这并不比Python解决方案更好。
在启动ipython笔记本后,是否有方法选择要使用的python版本,最好使用我当前的macports版本?
- 相关:stackoverflow.com/questions/28831854/&hellip;
这里的想法是安装多个ipython内核。这是关于Python的说明。如果你不使用Python,我最近添加了使用纯虚拟环境的指令。
Python>=4.1.0
从4.1.0版开始,Anaconda包含一个特殊的包nb_conda_kernels,它用笔记本内核检测Conda环境并自动注册。这使得使用新的python版本和创建新的conda环境一样容易:
1 2
| conda create -n py27 python=2.7 ipykernel
conda create -n py36 python=3.6 ipykernel |
重新启动Jupyter笔记本电脑后,新的内核将通过图形界面提供。请注意,新软件包必须显式安装到新环境中。Conda文档中的"管理环境"部分提供了进一步的信息。
手动注册内核
不想使用nb_conda_kernels或仍然使用旧版本的Python的用户可以使用以下步骤手动注册ipython内核。
配置python2.7环境:
1 2 3 4
| conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
ipython kernel install --user |
配置python3.6环境:
1 2 3 4
| conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user |
之后,您可以在python2之间进行选择。和python3在界面中创建新笔记本时。
此外,如果要更改内核的名称,可以将--name和--display-name选项传递给ipython kernel install。更多信息请参见ipython kernel install --help。
- 你的解决方案看起来很像我最终使用的解决方案,原则上我希望它能工作。因为我已经卸载了水蟒并完成了这个工作,所以我无法验证。
- 在Mac上工作。新的内核规范最终出现在/usr/local/share/jupyter/kernels/kernel2/kernel.json和/usr/local/share/jupyter/kernels/kernel3/kernel.json中。
- @Deltap,是的,我们的解决方案非常相似。唯一的区别是,您的解决方案需要根访问,因为它不使用virtualenv。我个人更喜欢virtualenvs,但我想这是一个品味问题。如果有效,一切都很好:)
- @米凯姆&252;勒,这对所有寻找这个问题的人来说都是好事,但对我来说却是坏事。我真的不明白为什么它对我不起作用。)
- 如果要在不需要根目录的情况下设置kernelspecs,可以执行ipython kernelspec install-self --user来为当前用户安装它们。
- 这个解决方案太棒了。谢谢您。我现在把我的ipython笔记本都准备好了。但是,当我点击ipython笔记本中的[新建]按钮时,有没有一种方法可以给我两个选项:1。python 2和2。Python3?是否有可能在一个地方同时显示这两个选项?@塞尔
- @拉斐,你能试着重新表述你的问题吗?我很难理解"一个地方的两个选项"是指什么。
- 我明白了!你的回答有帮助!dropbox.com/s/6ayqf55ctkv2xgk/&hellip;
- 现在,当我单击[新建笔记本]按钮时,在下拉菜单中会同时显示python 2和python 3。只有当我运行ipython笔记本的时候,它才能通过我安装的Python(而不是虚拟环境)运行。
- 有人知道当我想像@rafeh提到的那样并排运行python 2&3时,我需要如何启动jupyter,但我不想使用Python?
- @克里斯,你可以做同样的步骤,但是用简单的虚拟环境来代替水蟒。
- @cel谢谢,是的,我可以看到jupyter里面的两个内核,但是我只能运行其中一个,这取决于我用哪个环境启动jupyter。但是,我应该有一种方法可以并行运行两个笔记本,一个使用python2内核,另一个使用python3内核。我就是不知道该怎么做。目前,如果我从python2env启动jupyter,python3笔记本会打开,但内核会崩溃,反过来也一样。知道我做错了什么吗?可能与我的$PATH$PYTHONPATH设置有关?
- @克里斯,这太复杂了,无法在评论中找到答案。相反,你可以问一个问题,尽可能多地包含细节。
- @Cel谢谢,我正准备这么做,但我刚刚解决了问题,结果,@mikem&252;ller下面的答案确实帮助了我(spoiler:我不得不根据他提供的链接编辑ipython kernelspec install-self)创建的kernel.json文件)
- 使用Win8.1上的这些说明,venv中既没有安装水蟒也没有安装ipython。这是通过移除venv并通过添加anaconda to the end, i.e. conda create-n py27 python=2.7 anaconda来解决的。`
- @pylang,注意在这种情况下不需要删除环境。激活您选择的环境后,您可以使用conda install 添加其他包。
- "塞尔,谢谢。我不确定Python是否会链接到现有的包裹。另外,对我之前的评论进行了一次编辑:"…anaconda到结尾,即conda create -n py27 python=2.7 anaconda"
- 回答很好,谢谢!你真的救了我。
- 我的根环境是3.5,我创建了一个名为py35的新环境,如上面所述。我丢失了pip安装的包,是否可以将这个新环境点指向根bin?
- @leonyin,如果您想在jupyter中使用根环境,可以在根环境中安装另一个ipython内核。只需在根环境中执行conda install notebook ipykernel和ipython kernel install --user --name root_py3,并在笔记本中选择root_py3内核。
- 很好。它起作用了。
- 使用Ubuntu,我安装了Anaconda,然后按照说明执行conda create-n py27 python=2.7 ipykernel conda create-n py35 python=3.5 ipykernel,当我重新启动笔记本时,我仍然只能在笔记本上获得python 3选项?如何启用python 2作为新笔记本的选项?
- @如回答中所述,飞镖有两种情况:要么你有nb_conda_kernel,那么这就足够了。否则,您必须手动安装内核,如答案后半部分所述。
- 关键项目是你必须安装NB康达内核它没有与我的初始康达!谢谢!
- 所以现在我有了多个Conda env(对于p2和p3)有没有一个简单的方法来安装这两个包中的所有基本的Conda?像是SciKit的通用需求文本文件?
- @dartdog,anaconda是一个(meta-)包,您可以像安装其他包一样安装它。conda install anaconda。
- 安装NB康达内核:conda install nb_conda_kernels。
- 如果有人跑过jupyter_environment_kernels;显然nb_conda_kernels和jupyter_environment_kernels有相似的目标,甚至可能有一些共同的代码,正如他们的创建者所讨论的那样。
- 通过"i python kernel install--user"安装kernelspec时,在用新的python版本添加conda env之后,缺少了一个我需要的kernelspec。
- 对于Anaconda4.4,您似乎需要手动安装ipykernel,如此处所述stackoverflow.com/a/44786736/3416205
- @安托尼戈蒂埃,听到这个我很惊讶。对我来说,这种方法仍然有效。您确定启动Jupyter的环境中有NB康达内核包吗?我在上游没有发现任何使这种方法不可用的更改。
- @cel,实际上,我从中启动jupyter的环境在默认情况下没有安装包nb-conda-u内核。我没有花时间去阅读所有的评论:也许你可以编辑你的答案,包括达特狗的翻拍。
- 这里的自动指令对我不起作用,但手动指令对我起作用!谢谢!
- 不为我工作,当我执行source activate py36时,它出错了:bash:/home/jhelmus/workspace/misc/cdh ou package/anaconda/scripts/par&zwnj;&8203;cel/tmp/anaconda-5.1&zwnj;&8203;.0/etc/profile.d/con&zwnj;&8203;da.sh:没有这样的文件或目录
- @mdivk,conda activate py36工作吗?可能是我必须为最新版本的Conda更新这个。
- 不,它不起作用,这显然是错误中的遗留问题:jhelmus,他很可能是代码的开发人员。是的,正确的命令应该是conda activate。
- @MDivik,我同意你的观点,它似乎是一些开发人员代码的遗留问题,但是我不知道如何修复它。我想出口你的环境和用最新的官方安装程序重新安装水蟒会解决它。
如果您在python 3上运行jupyter,那么可以像这样设置python 2内核:
1 2 3
| python2 -m pip install ipykernel
python2 -m ipykernel install --user |
http://ipython.readthedocs.io/en/stable/install/kernel_install.html
- 如果已经设置了python2并且需要python3,请将"2"切换为"3"。我不明白为什么这不是最好的答案,奥卡姆的剃刀肯定会赢,这对我很有用。
- 我同意。这很管用!
- 工作得很好。应该是第一个答案。
- 接受的答案似乎引用了与此答案相同的帮助。我想了解区别。我注意到接受的答案使用conda命令,而这个答案使用python2命令;而且接受的答案使用conda create命令,这创造了一个新的conda环境;是吗?这两种技术都以python2 -m ipykernel install --user结尾,它被描述为"最后一个命令安装内核规范文件…"
- python2命令包含在python本身中吗?请详细解释一下这个答案。:)
- 这是可行的,但它没有通过附加的包链接到我的系统python 2。有没有链接到现有的python二进制/可执行文件的方法?
- 这应该是第一个答案!目前的第一个答案对我不起作用。
- 刚刚成功了!谢谢
- 可以,但在ubtun中16.04必须安装1)sudo-e apt get install python dev;然后在虚拟环境中安装2)pip2安装ipykernel,然后安装3)python2-m pip2安装ipykernel
- 运行第一行,我得到这个错误:失败的建设车轮为斯堪的纳维亚…命令"/usr/local/opt/python/bin/python2.7-u-c"导入设置工具….有什么想法吗?
- 解决了它。因为我在MacOS上,所以我必须先玩"xcode select——install"。
- 在Win10中工作得很好,只需将python2替换为your\path\to\python(2).exe。
- 我使用的是Conda,这个解决方案可以根据需要与我当前的Conda环境一起工作。谢谢您!
使用当前版本的笔记本/jupyter,您可以创建python3内核。在用python 2从命令行启动一个新的笔记本应用程序之后,您应该看到一个条目?python 3"在下拉菜单中?新"。这将为您提供一个使用python 3的笔记本。因此,您可以将两个笔记本与不同的Python版本并排放置。
细节
创建此目录:mkdir -p ~/.ipython/kernels/python3。
使用以下内容创建此文件~/.ipython/kernels/python3/kernel.json:
1 2 3 4 5 6 7 8 9 10 11 12 13
| {
"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"
}
} |
重新启动笔记本服务器。
选择?从下拉菜单中选择python 3?新"
使用python 3笔记本
选择?从下拉菜单中选择python 2?新"
使用python 2笔记本
- 这很好,我正在努力使其工作,但您能否具体说明在这种情况下如何启动jupyter(我要么运行ipython notebook要么运行ipython3 notebook)。现在我只能运行其中一个或另一个(使用它们各自的环境,但我确实看到了jupyter中列出的两个内核。你可以扩大你的答案,包括如何启动jupyter,以便我可以运行python2和python3并排运行吗?谢谢!
- 好吧,我想我已经弄明白了-我必须调整~/Library/Jupyter/kernels/python3/中的kernel.json文件(在os x上),并添加链接文件中提到的参数。
- @克里斯是的,虽然链接背后的描述是在一个ipython笔记本中给出的,但它可以在一个编辑器中完成。只需在给定路径和显示的内容上创建或修改具有特定名称的文件。很高兴你解决了你的问题。
- 我建议编辑您的答案,以包含该链接的详细信息。答案不应该把最重要的部分隐藏在链接后面。
- @克里斯从链接中添加了细节。
- 非常优雅的解决方案,谢谢。在Kubuntu 15.10为我工作。不过,内核显示为IPython (Python 3),而不是Python 3。
- 最后,您可以运行"jupyter kernelspec install~/.ipython/kernels/python3/--user",它将把内核安装到~/.local/share/jupyter/kernels目录。我不确定,但这可能有助于避免功能中的兼容性问题,因为只有jupyter才受支持!Ubuntu 14.04 x86 U 64
- 这给了我内核错误
- kernel正在抛出一个反预测错误。这对我很有用:"argv":["python3","-m","ipykernel","-f","连接文件"]
这些说明解释了如何在不同的虚拟环境中为非Python用户安装python2和python3内核。如果你使用的是Python,请找我的另一个答案,直接为Python量身定做的解决方案。
我假设您已经安装了jupyter notebook。
首先,确保您有一个python2和一个python3解释器和pip可用。
在Ubuntu上,您可以通过以下方式安装:
1
| sudo apt-get install python-dev python3-dev python-pip python3-pip |
接下来准备并注册内核环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| python -m pip install virtualenv --user
# configure python2 kernel
python -m virtualenv -p python2 ~/py2_kernel
source ~/py2_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py2 --user
deactivate
# configure python3 kernel
python -m virtualenv -p python3 ~/py3_kernel
source ~/py3_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py3 --user
deactivate |
为了使操作更简单,您可能需要将激活命令的shell别名添加到shell配置文件中。根据您使用的系统和shell,可以是~/.bashrc、~/.bash_profile或~/.zshrc。
1 2
| alias kernel2='source ~/py2_kernel/bin/activate'
alias kernel3='source ~/py3_kernel/bin/activate' |
重新启动shell后,您现在可以在激活要使用的环境后安装新的包。
1 2 3
| kernel2
python -m pip install <pkg-name>
deactivate |
或
1 2 3
| kernel3
python -m pip install <pkg-name>
deactivate |
- 随后,安装了pandas,启动jupyter,切换到py3内核:导入pandas失败,出现"未找到"错误。我快疯了
- @用户1255933,这可能是由于安装了错误的PIP版本。如果激活目标环境失败或不包含PIP版本,则可能发生这种情况。您可能会发现我的答案很有趣:stackoverflow.com/questions/32680081/&hellip;。
- 感谢您使用非水蟒方式安装内核的说明
有一个解决方案可以让我通过配置ipython kernelspec来保持MacPorts的安装。
要求:
- MacPorts安装在常规/opt目录中
- python 2.7通过macports安装
- python 3.4通过macports安装
- ipython是为python 2.7安装的
- ipython是为python 3.4安装的
对于Python 2 .x:
1 2
| $ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
$ sudo ./ipython kernelspec install-self |
对于Python 3 .x:
1 2
| $ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self |
现在,您可以打开ipython笔记本,然后选择python 2.x或python 3.x笔记本。
- 您能确认在同一个jupyter实例中可以并行运行python2和python3内核笔记本吗?在这种情况下,您如何启动jupyter以避免路径冲突?我目前只能通过预先设置适当的$PATH$PYTHONPATH环境来运行python2或python3代码。我能以某种方式避免这个吗?
- 我可以运行python2或python3内核笔记本。
- 您如何启动jupyter(考虑到它是为python 2.7和python 3.4安装的)您定义了$pythonpath或源于某些虚拟环境吗?你只是打电话给ipython notebook吗?如果是的话,这是指哪个ipython—安装在2.7或3.4上的那个?
- 我打电话给python notebook。which ipython表示指向/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/ipython。
- 好吧,我发现了我的问题,它与一个预先定义的$PYTHONPATH有关,这使得切换内核变得困难。在启动ipython之前,我必须先启动unset PYTHONPATH,现在它工作了。
在我的Linux安装中,我做到了:
sudo ipython2 kernelspec install-self
现在我的python 2又回到了列表中。
参考文献:
http://ipython.readthedocs.org/en/latest/install/kernel_install.html
更新:
上述方法现在已弃用,将来将删除。新方法应该是:
sudo ipython2 kernel install
- 我讨厌随意地将命令粘贴到我的Ubuntu安装中,但这确实对我有用。
- 我听见了!我只是在找到它的地方添加了文档参考。
- 应该是选择的答案。
- 简而言之,我已经在MacOSX上应用了这个解决方案,没有任何问题。
- 我试了所有的答案。但这对我很管用。如果你在Ubuntu上,试试看。
- 我在哪里能找到ipython2?
以下是将python2内核添加到jupyter笔记本的步骤:
打开终端,创建新的python 2环境:conda create -n py27 python=2.7。
激活环境:Linux source activate py27或Windows activate py27
在env:conda install notebook ipykernel中安装内核
安装env:ipython kernel install --user外部的内核
关闭env:source deactivate。
虽然一个迟来的答案希望有人发现它有用:p
使用sudo pip3 install jupyter安装python3的jupyter,使用sudo pip install jupyter安装python2的jupyter笔记本。然后,您可以调用ipython kernel install命令,使这两种类型的笔记本都可以在jupyter笔记本中进行选择。
我看了这些极好的信息,然后想知道,因为
我已经安装了python2、python3和ipython,
我安装了Pycharm,
pycharm使用ipython作为其python控制台,
如果Pycharm会用
当菜单>文件>设置>项目>项目解释器==py2和
当菜单>文件>设置>项目>项目解释器==py3时,ipython-py3
答:是的!
另外,我也安装了用于Windows的python启动程序。
在Windows7下,我安装了Python和Python3。我进了江户十一〔0〕,执行了死刑。
1
| sudo .\ipython kernelspec install-self |
然后我进了以东城,执行了死刑。
1
| sudo .\ipython kernel install |
(我找到了jupyter kernelspec install-self is DEPRECATED as of 4.0. You probably want 'ipython kernel install' to install the IPython kernelspec.)
启动jupyter notebook(在anaconda3中)后,右上角的"new"下有一个简洁的下拉菜单,让我在python 2 odr python 3内核之间进行选择。