use*_*039 305 anaconda conda jupyter jupyter-notebook
我安装了Anaconda(使用Python 2.7),并在一个名为的环境中安装了Tensorflow tensorflow
.我可以在该环境中成功导入Tensorflow.
问题是Jupyter Notebook无法识别我刚刚创建的新环境.无论我从GUI导航或命令行启动Jupyter笔记本电脑内的tensorflow
ENV中,只有一个名为菜单内核Python [Root]
,并Tensorflow无法导入.当然,我多次点击该选项,保存文件,重新打开,但这些没有帮助.
奇怪的是,当我打开Conda
Jupyter首页上的标签时,我可以看到这两个环境.但是当我打开Files
标签,并尝试new
使用笔记本时,我仍然只有一个内核.
我看了这个问题:
用Jupyter Notebook链接Conda环境
但是~/Library/Jupyter/kernels
我的电脑上没有这样的目录!这个Jupyter目录只有一个名为的子目录runtime
.
我真的很困惑.Conda环境是否应该自动成为内核?(我跟着https://ipython.readthedocs.io/en/stable/install/kernel_install.html手动设置了内核,但被告知ipykernel
没有找到.)
And*_*ler 466
我不认为其他答案正在发挥作用,因为conda停止自动将环境设置为jupyter内核.您需要以下列方式为每个环境手动添加内核:
source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
Run Code Online (Sandbox Code Playgroud)
如此处所述:http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments 也看到此问题.
附录:您应该能够安装nb_conda_kernels
软件包以conda install nb_conda_kernels
自动添加所有环境,请参阅https://github.com/Anaconda-Platform/nb_conda_kernels
Ste*_*ell 108
@ HarshaManjunath的评论提到当使用Anaconda3(或Miniconda3)时,你需要安装nb_conda_kernels
到conda环境中(除此之外nb_conda_kernels
):
conda install -n notebook_env nb_conda_kernels
Run Code Online (Sandbox Code Playgroud)
请注意,这目前不适用于python 3.6环境.该软件包的信息确实说有一个python 3.6版本,它只是不起作用.
conda install -n python_env ipykernel
Run Code Online (Sandbox Code Playgroud)
要在Jupyter笔记本中使用python 3.6,您可以nb_conda
在python 3.6环境中运行.您将无法从Jupyter中查看或切换到其他环境.
conda install -n r_env r-irkernel
Run Code Online (Sandbox Code Playgroud)
Oct*_*ius 103
令人讨厌的是,在您的tensorflow
环境中,您可以在jupyter notebook
不在jupyter
该环境中安装的情况下运行.赶紧跑
(tensorflow) $ conda install jupyter
Run Code Online (Sandbox Code Playgroud)
并且tensorflow
现在应该可以在Jupyter中看到环境,这些笔记本在您的任何conda
环境中都可以像Python [conda env:tensorflow]
.
coo*_*ist 59
我必须运行前3个答案中提到的所有命令才能使其正常工作:
conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel
Run Code Online (Sandbox Code Playgroud)
小智 47
只需conda install ipykernel
在你的新环境中运行,只有这样你才能获得这个env的内核.即使您在每个env中安装了不同的版本,它也不会再次安装jupyter笔记本.您可以从任何环境启动笔记本,您将能够看到新添加的内核.
Abd*_*res 13
向 Jupyter 添加 conda 环境:
执行 conda activate <env name>
执行 conda install -c anaconda ipykernel
执行 python -m ipykernel install --user --name=<env name>
在 conda 4.8.3上测试
bad*_*mer 12
这在 Windows 10 和最新解决方案中对我有用:
1)进入那个 conda 环境(激活 your_env_name )
2) conda install -n your_env_name ipykernel
3) python -m ipykernel install --user --name build_central --display-name "your_env_name"
(注意:在第 3 步中包含“your_env_name”周围的引号)
jan*_*glx 11
该nb_conda_kernels
包是jupyter
与conda
. 凭借最少的依赖和配置,它允许您从在不同环境中运行的 jupyter notebook 使用其他 conda 环境。引用它的文档:
安装
该软件包旨在仅使用 conda 进行管理。它应该安装在运行 Jupyter Notebook 或 JupyterLab 的环境中。这可能是您的
base
conda 环境,但不一定是。例如,如果环境notebook_env
包含 notebook 包,那么您将运行
conda install -n notebook_env nb_conda_kernels
您希望在笔记本中访问的任何其他环境都必须安装适当的内核包。例如,要访问 Python 环境,它必须具有
ipykernel
包;例如
conda install -n python_env ipykernel
要使用 R 环境,它必须有 r-irkernel 包;例如
conda install -n r_env r-irkernel
对于其他语言,必须安装相应的内核。
然后你需要做的就是启动 jupyter notebook 服务器:
conda activate notebook_env # only needed if you are not using the base environment for the server
# conda install jupyter # in case you have not installed it already
jupyter
Run Code Online (Sandbox Code Playgroud)
尽管有大量的答案并且@merv 努力改进它们,但仍然很难找到一个好的答案。我做了这个 CW,所以请把它投票给顶部或改进它!
oha*_*cat 10
$ conda install nb_conda_kernels
Run Code Online (Sandbox Code Playgroud)
(在运行jupyter Notebook的conda环境中)将使所有conda envs自动可用。为了访问其他环境,必须安装相应的内核。这是ref。
Ted*_*rou 10
如果您希望'python3'内核始终在启动它的环境中运行Python安装,请删除用户'python3'内核,该内核优先于当前环境所处的环境:
jupyter kernelspec remove python3
Run Code Online (Sandbox Code Playgroud)
对于以下情况,我将发布一种替代且更简单的解决方案:
jupyter notebook
并通过单击“新建”下拉菜单中的“ python3”来创建新笔记本时,该笔记本将从基本环境而非当前环境执行python。对于解决方案的其余部分,我将在环境中使用名称“ test_env”。另外,请注意,“ python3”是内核的名称。
当前投票最高的答案确实有效,但是还有另一种选择。它说要执行以下操作:
python -m ipykernel install --user --name test_env --display-name "Python (test_env)"
Run Code Online (Sandbox Code Playgroud)
无论您jupyter notebook
从哪个环境启动,这都将为您提供使用test_env环境的选项。但是,使用“ python3”启动笔记本仍将使用基本环境中的Python安装。
可能发生的是存在一个用户python3内核。运行命令jupyter kernelspec list
以列出所有环境。例如,如果您有Mac,则会返回以下信息(我的用户名为Ted)。
python3 /Users/Ted/Library/Jupyter/kernels/python3
Run Code Online (Sandbox Code Playgroud)
Jupyter在这里所做的事情是通过三种不同的途径搜索内核。它从用户到环境,再到系统。有关在每个操作系统中搜索路径的更多详细信息,请参见本文档。
上面的两个内核都位于用户路径中,这意味着无论您从哪个环境启动jupyter Notebook,它们都将可用。这也意味着,如果在环境级别存在另一个“ python3”内核,那么您将永远无法访问它。
对我而言,从启动笔记本的环境中选择“ python3”内核应该在该环境中执行Python更为有意义。
您可以通过在操作系统的Env搜索路径中查找来查看是否有另一个“ python3”环境(请参见上面文档的链接)。对于我(在Mac上),我发出了以下命令:
ls /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels
Run Code Online (Sandbox Code Playgroud)
我确实在那里列出了“ python3”内核。
感谢这个GitHub问题注释(请看第一个响应),您可以使用以下命令删除User'python3'环境:
jupyter kernelspec remove python3
Run Code Online (Sandbox Code Playgroud)
现在,当您运行时jupyter kernelspec list
,假设test_env仍处于活动状态,您将获得以下内容:
python3 /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels/python3
Run Code Online (Sandbox Code Playgroud)
请注意,该路径位于test_env目录中。如果创建一个新环境,安装jupyter,将其激活并列出内核,您将在其环境路径中找到另一个“ python3”内核。
用户'python3'内核优先于任何Env'python3'内核。通过删除它,活动环境“ python3”内核被公开,并且每次都可以选择。这样就无需手动创建内核。对于需要将自己隔离到一个环境中的软件开发而言,这也更有意义。运行与主机环境不同的内核似乎并不自然。
似乎默认情况下也未为所有人安装此用户“ python3”,因此并非所有人都遇到此问题。
我们在这个问题上遇到了很多困难,这对我们有用.如果您使用conda-forge通道,请务必确保使用更新的软件包conda-forge
,即使在Miniconda
根环境中也是如此.
所以安装Miniconda,然后执行:
conda config --add channels conda-forge --force
conda update --all -y
conda install nb_conda_kernels -y
conda env create -f custom_env.yml -q --force
jupyter notebook
Run Code Online (Sandbox Code Playgroud)
并且您的自定义环境将作为可用内核显示在Jupyter中,只要ipykernel
在custom_env.yml
文件中列出安装,就像这个示例:
name: bqplot
channels:
- conda-forge
- defaults
dependencies:
- python>=3.6
- bqplot
- ipykernel
Run Code Online (Sandbox Code Playgroud)
只是为了证明它适用于一堆自定义环境,这里是Windows的屏幕抓取:
小智 7
我遇到了同样的问题,我的新conda环境myenv
无法被选为内核或新笔记本.jupter notebook
从env中运行也得到了相同的结果.
我的解决方案,以及我了解Jupyter笔记本如何识别conda-envs和内核:
使用conda安装jupyter和ipython myenv
:
conda install -n myenv ipython jupyter
Run Code Online (Sandbox Code Playgroud)
之后,jupter notebook
在myenv
我之前的环境中运行作为内核列出的任何env .
Python [conda env:old]
Python [conda env:myenv]
Run Code Online (Sandbox Code Playgroud)
激活环境后运行笔记本:
source activate myenv
jupyter notebook
Run Code Online (Sandbox Code Playgroud)
隐藏我所有的其他环境内核,只显示我的语言内核:
python 2
python 3
R
Run Code Online (Sandbox Code Playgroud)
这是一个旧线程,但在 Anaconda 提示符下运行它,在我感兴趣的环境中,对我有用:
ipython kernel install --name "myenvname" --user
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,我找到了适用于 Mac、Windows 和 Linux 的解决方案。它需要上面答案中的几个关键要素:
为了能够在 Jupyter Notebook 中查看 conda env,您需要:
您的基础环境中包含以下包:
conda install nb_conda
您创建的每个环境中的以下包:
conda install ipykernel
检查jupyter_notebook_config.py
第jupyter_notebook_config.py
一个检查的配置 ,jupyter --paths
如果不存在,请通过运行 jupyter notebook --generate-config
add 创建它,或者确保您具有以下内容:c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'
在 Jupyter Lab 上,您可以看到与上面笔记本和控制台相同的环境:
安全的方法是创建一个特定的环境,您将在其中运行envjupyter lab
命令的示例。激活您的环境。然后添加 jupyter lab 扩展示例 jupyter lab 扩展。然后你就可以运行 jupyter lab
小智 5
这太令人沮丧了,我的问题是在新建的 conda python36 环境中,jupyter 拒绝加载“seaborn”——即使 seaborn 安装在该环境中。它似乎能够从同一环境中导入大量其他文件——例如 numpy 和 pandas,但不能导入 seaborn。我尝试了此处和其他线程上建议的许多修复程序,但均未成功。直到我意识到 Jupyter 不是在该环境中运行内核 python 而是将系统 python 作为内核运行。即使看起来不错的 kernel 和 kernel.json 已经存在于环境中。只有在阅读了 ipython 文档的这一部分之后:https ://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments 并使用这些命令:
source activate other-env
python -m ipykernel install --user --name other-env --display-name "Python (other-env)"
Run Code Online (Sandbox Code Playgroud)
我能够让一切顺利。(我实际上并没有使用 —user 变量)。
我还没有想到的一件事是如何将默认 python 设置为“Python (other-env)”。目前,从主屏幕打开的现有 .ipynb 文件将使用系统 python。我必须使用内核菜单“更改内核”来选择环境python。
归档时间: |
|
查看次数: |
192278 次 |
最近记录: |