"module not found" 在 jupyter 实验室中,但在 "jupyter notebook" 中工作正常

"module not found" in jupyter lab, but works fine in "jupyter notebook"

我用的是conda python环境。我按照以下步骤启动 Jupyter 实验室:

$conda activate <env_name>
$jupyter lab --no-browser --port=8080 &

现在,当我尝试从 jupyter lab notebook 导入 feather(导入 feather)时,失败并显示 Module Not Found 消息。

在 jupyter lab notebook 中,如果我执行以下命令,它会显示 feather 存在:

! conda list | grep feather

现在,如果我在同一个 VM 中关闭 Jupyter Lab 并改为启动 Jupyter Notebook,feather 将从笔记本中成功导入。

$conda activate <env_name>
$jupyter-notebook --no-browser --port=8080 &

我看到 this 讨论,但没有看到解决方案。

我找到了避免此问题的可能解决方法。这是基于这个 .

从 conda 环境(例如 my_env),我可以创建一个新的 Python 3 内核(例如 python3_custom)。现在,此内核将与该 conda 环境中安装的所有库相关联。

$ conda activate my_env
(my_env)$ conda install ipykernel
(my_env)$ ipython kernel install --user --name=python3_custom
(my_env)$ conda deactivate

我是从my_env还是基地环境出来的。然后我从命令提示符启动 JupyterLab:

jupyter lab --no-browser --port=8080 &

一旦我现在打开我的笔记本,我可以select内核为python3_custom。由于在关联的 conda 环境 (my_env) 中,已经安装了 feather,因此我不再收到错误 "Module Not Found"。

或者,从您的 Jupyter notebook 中或在命令行中检查您的路径。我发现将模块路径附加到 sys.path 解决了这个确切的问题。

我的案例中缺少所有 ~/anaconda3/envs/[env]/lib/python3.7* 路径。