- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通常在终端中运行 jupyter notebook
或 jupyter-notebook
或 ipython notebook
到
在本地启动 Jupyter 笔记本网络服务器(并在浏览器中打开 URL)。使用 conda 时
和 conda environments 、 运行 Jupyter 笔记本的最佳方式是什么,它允许
导入安装在 conda 环境中的 Python 模块?
看起来, this is not quite 0x2518122133411542 2318122133411542 23153152152134152133415314213421342133341315213341521333341521421342
straight forward and many .
最常见的错误消息似乎是:在 conda 环境中安装包 XYZ 之后my-env
可以在以 import XYZ
启动的 python 控制台中运行 my-env
,但运行相同
Jupyter notebook 中的代码将导致 ImportError 。
这个问题已经问过很多次了,但是没有很好的地方来回答它,大多数问答和
Github 票很乱所以 users 。
最佳答案
*免责声明:仅在 Ubuntu 和 Windows 中测试(请参阅对此答案的评论),如果在使用不同的操作系统时发生了变化,请发表评论。
Jupyter 在称为内核的单独进程中运行用户的代码。内核可以不同
Python 安装(在不同的 conda 环境或 virtualenv 或 Python 2 而不是 Python
3) 甚至是不同语言的解释器(例如 Julia 或 R)。内核由
指定解释器和名称以及其他一些参数(参见 Jupyter documentation)
并且配置可以存储在系统范围内,用于事件环境(或 virtualenv)或每个
用户。如果使用 nb_conda_kernels
,除了静态配置的内核之外,每个内核都有一个单独的内核
安装了 ipykernel
的 conda 环境将在 Jupyter 笔记本中可用。
简而言之,如何使用 conda 环境和 Jupyter 有三种选择:
选项 1:在 conda 环境中运行 Jupyter 服务器和内核
做类似的事情:
conda create -n my-conda-env # creates new virtual env
conda activate my-conda-env # activate environment in terminal
conda install jupyter # install jupyter + notebook
jupyter notebook # start server + kernel
Jupyter 将完全安装在 conda 环境中。可以使用不同版本的 Jupyter
env.yml
文件中。因此一
conda create -n my-conda-env # creates new virtual env
conda activate my-conda-env # activate environment in terminal
conda install ipykernel # install Python kernel in new conda env
ipython kernel install --user --name=my-conda-env-kernel # configure Jupyter to use Python kernel
jupyter notebook # run jupyter from system
内核名称和 conda 环境相互独立,但它可能会使
ipython kernel install
,jupyter 被配置为使用 conda 环境作为内核,参见
*.json
文件
~/.local/share/jupyter/kernels/my-conda-env-kernel/kernel.json
:
{
"argv": [
"/opt/miniconda3/envs/my-conda-env/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "my-conda-env-kernel",
"language": "python"
}
选项 3:使用 nb_conda_kernels 在 conda 环境中使用内核
nb_conda_kernels
后,每个内核自动可用
ipykernel
或不同内核(R、Julia 等)的 conda 环境。
conda activate my-conda-env # this is the environment for your project and code
conda install ipykernel
conda deactivate
conda activate base # could be also some other environment
conda install nb_conda_kernels
jupyter notebook
您应该可以选择内核
Python [conda env:my-conda-env]
。注意
nb_conda_kernels
似乎只能通过 conda 而不是通过 pip 或其他包管理器(如 apt)可用。
which
会告诉你使用的是哪个 jupyter,如果你
$ which jupyter
/opt/miniconda3/envs/my-conda-env/bin/jupyter
$ which jupyter-notebook # this might be different than 'which jupyter'! (see below)
/opt/miniconda3/envs/my-conda-env/bin/jupyter-notebook
在笔记本中,您应该看到 Python 使用来自 conda 环境的 Python 路径:
[1] !which python
/opt/miniconda3/envs/my-conda-env/bin/python
[2] import sys; sys.executable
'/opt/miniconda3/envs/my-conda-env/bin/python'
['/home/my_user',
'/opt/miniconda3/envs/my-conda-env/lib/python37.zip',
'/opt/miniconda3/envs/my-conda-env/lib/python3.7',
'/opt/miniconda3/envs/my-conda-env/lib/python3.7/lib-dynload',
'',
'/opt/miniconda3/envs/my-conda-env/lib/python3.7/site-packages',
'/opt/miniconda3/envs/my-conda-env/lib/python3.7/site-packages/IPython/extensions',
'/home/my_user/.ipython']
Jupyter 提供命令
jupyter-troubleshoot
或在 Jupyter notebook 中:
!jupyter-troubleshoot
这将打印很多有用的信息,包括上面提到的输出以及安装的库和其他。什么时候
jupyter kernelspec list
常见错误和陷阱
which jupyter
可能会让您相信它是。
which jupyter
来检查 Jupyter 的哪个可执行文件正在运行。
(my-conda-env) $ which jupyter-notebook
/usr/bin/jupyter
如果路径指向 conda 环境中的文件,则 Jupyter 将从 Jupyter 内部运行:
(my-conda-env) $ which jupyter-notebook
/opt/miniconda3/envs/my-conda-env/bin/jupyter-notebook
注意,安装conda包
ipykernel
时,会附带一个可执行文件
jupyter
,但是
jupyter-notebook
。这意味着
which jupyter
将返回 conda 的路径
jupyter notebook
将启动系统的
jupyter-nootebook
(另见
here ):
$ conda create -n my-conda-env
$ conda activate my-conda-env
$ conda install ipykernel
$ which jupyter # this looks good, but is misleading!
/opt/miniconda3/envs/my-conda-env/bin/jupyter
$ which jupyter-notebook # jupyter simply runs jupyter-notebook from system...
/usr/bin/jupyter-notebook
发生这种情况是因为
jupyter notebook
搜索
jupyter-notebook
,找到
/usr/bin/jupyter-notebook
和
/usr/bin/jupyter-notebook
中的shebang是
#!/usr/bin/python3
和
not a dynamic
#!/usr/bin/env python
。
python /usr/bin/jupyter-notebook
改为否决shebang,但混合
conda activate my-conda-env
conda install jupyter
jupyter notebook
错误的内核配置:内核配置为使用系统 Python
/usr/bin/python3
,参见例如
/usr/share/jupyter/kernels/python3/kernel.json
。
/opt/miniconda3/envs/my-conda-env/bin/python
。两者都是由包生成的
ipykernel
(见
here
~/.local/share/jupyter/kernels/python3/kernel.json
中的用户内核规范可能会覆盖
jupyter kernelspec list
列出位置事件内核位置。
$ conda activate my-conda-env
$ jupyter kernelspec list
Available kernels:
python3 /opt/miniconda3/envs/my-conda-env/share/jupyter/kernels/python3
如果环境中的内核缺失,可以尝试使用手动创建
ipython kernel install --sys-prefix
在激活的环境中,但可能更好
conda install ipykernel
应该已经创建了环境
$PATH
找出要使用的
python
。
$ cat ~/.local/share/jupyter/kernels/python3/kernel.json
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}
未激活正确的 conda 环境
conda activate my-conda-env
激活它来完成。如果您尝试运行 Jupyter
conda activate my-conda-env
jupyter notebook
损坏的内核配置
~/.local/share/jupyter/kernels/my-kernel-name/kernel.json
中的配置
jupyter kernelspec list
。
conda create -n my-conda-env
conda activate my-conda-env
conda install python=2
conda install jupyter
jupyter notebook
默认的 Python 3 内核:
$ cat ~/.local/share/jupyter/kernels/python3/kernel.json
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}
使用 Python 3 内核创建新的 Jupyter Notebook 后,来自 conda 的 Python 2
关于python - 如何在 conda 环境中使用 Jupyter notebooks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58068818/
尝试使用命令 conda update conda 从终端更新 conda 时出现错误.它在说: Solving environment: failed UnsatisfiableError: The
在 conda 中,当我尝试安装软件包时,出现此错误: CorruptedEnvironmentError: The target environment has been corrupted. C
我想在一个特定的 conda 环境中安装带有 conda 的程序,并能够使用来自所有 conda 环境的相关命令。 我的目标是让学生在任何平台(尤其是 Windows)上安装 Mercurial(加上
我遇到了一个麻烦的问题。 我的 pip 和 /home/xxx/local/anacoda2/bin 的 python 都可以,但是 conda 仍然不起作用。当我在我的 ubuntu16.04 终端
我已经在普通机器上设置了 Conda 环境。它工作正常。我想在一台无法访问互联网的机器上克隆这个环境(我只能通过 SSH 进入)。 我最初的想法是压缩 Conda 留下的包缓存并将其移动到气隙机器上的
我想要两个环境:生产环境是测试环境的严格子集。我如何使用 Conda(或 micromamba)实现这一目标? 测试需要一些不需要捆绑在生产 docker 镜像中的额外实用程序。主要思想是确保生产安装
每次打开终端时都会显示以下代码行。 Traceback (most recent call last): File "", line 3, in ImportError: No module n
我尝试使用以下命令更新 conda: ~$ conda update conda 它输出以下消息: WARNING conda.base.context:use_only_tar_bz2(632):
如何仅列出 conda 中针对特定环境显式安装的软件包?有没有办法做到这一点? 最佳答案 @Sjlver 的评论链接到的页面( https://github.com/conda/conda/issue
conda 文档指定: conda clean [-h] [-y] [--dry-run] [--json] [--debug] [--verbose] [-q] [-a] [-i] [-l] [-t
当我克隆一个 Conda 环境时 conda create --name thenewenv --clone theorigenv 我注意到 theorigenv 的修订历史丢失了 conda act
我在 Conda 环境中安装了一堆软件包,包括带有 NVIDIA 工具包的 docker 容器和一些其他非 python 库。安装占用了大约 10 GB 的磁盘空间。但是当我删除 Conda 环境时,
documentation指出克隆以这种方式工作:conda create --name myclone --clone myenv但是,这将始终默认创建环境 myclone进入我几乎没有磁盘存储空间
这个问题在这里已经有了答案: Why are packages installed rather than just linked to a specific environment? (1 个回答)
How to list package versions available with conda有有用的答案,其中之一在 https://stackoverflow.com/a/47795843/2
后 conda update --all 我无法再启动 spyder。如果我在终端中运行 spyder,我会收到以下错误: /anaconda3/bin/pythonw: line 3: /anaco
对于给定的 conda包,我如何列出依赖它的包? 我最近在一个已经有 MPI (openmpi) 版本的大学集群上安装了 anaconda。 mpich2包和mpi4py与 anaconda 一起安装
创建虚拟环境时可以将路径/Users/nolan/miniconda/envs/更改为另一个路径吗?我希望它特定于我的项目目录。 (正如我们可以使用 virtualenv 所做的那样) $conda
激活 conda 环境时,conda 会记住之前激活的环境。例如,如果没有激活任何环境,则调用 conda activate foo 然后调用 conda deactivate 将导致没有任何环境处于
我使用 PyCharm 创建了一个带有 conda 解释器的项目。 Pycharm自动为其创建conda环境。不久之后,我意识到我想要该项目的另一个地点。因此我删除了项目文件夹。然后我意识到我要删除
我是一名优秀的程序员,十分优秀!