【问题标题】:Starting jupyter from within a conda env vs. outside of conda envs从 conda env 内部与 conda envs 外部启动 jupyter
【发布时间】:2020-12-14 10:36:12
【问题描述】:

opening jupyter lab(或 notebook)从 WITHIN 特定的 conda envopening 有什么区别?来自任何conda envs 的外部?

当我从 WITHIN 特定的conda env 打开 jupyter 时,它可以正常工作,但是
当我从任何 conda 环境的 OUTSIDE 打开 jupyter 并尝试为 my_env 选择内核时,jupyter 失败并出现以下错误:

造成这种现象的原因可能是什么?

.
.
  File "C:\Users\shinji\anaconda3\envs\my_env\lib\site-packages\zmq\backend\cython\__init__.py", line 6, in <module>
    from . import (constants, error, message, context,
ImportError: DLL load failed: The specified module could not be found

  • 从 WITHIN 开始 jupyter

-在命令提示符中,
C:\Users\shinji\dir&gt; activate my_env

(my_env) C:\Users\shinji\dir&gt; jupyter lab

-jupyter lab 打开后,
选择内核:my_env


  • 从外部开始 jupyter

-在命令提示符中,
C:\Users\shinji\dir&gt; jupyter lab

-jupyter lab 打开后,
选择内核:my_env


【问题讨论】:

    标签: python jupyter-notebook anaconda jupyter conda


    【解决方案1】:

    区别在于

    activate my_env
    

    除其他外,将修改PATH 环境变量,您可以通过执行来检查(在您的基础环境中)

     echo %PATH%
     conda activate my_env
     echo %PATH%
    

    PATH 变量在这里至关重要,因为它是 Windows 应用程序查找它们正在加载的 dll 的默认位置。因此,当您尝试从您安装它的环境之外选择属于 my_env 的内核时出现错误消息:

    ImportError: DLL load failed: The specified module could not be found
    

    【讨论】:

    • 感谢您的澄清。我仍然感到困惑,部分原因是对于其他一些环境,我可以在从外部打开的 jupyter 上使用它们的内核,而不会出现任何错误。正是这个my_env 引发了错误。这种现象是否可以归因于 Path 差异以外的其他原因?
    • 也许可以通过运行conda list 来检查zeromq 的版本,以获取my_env 和它适用的其他一些环境。该错误消息表明zmq 无法从当前PATH 中找到必要的DLL。可能是对于两个安装了相同zmq 版本的环境,您可以在环境 B 中启动环境 A 的内核,因为使用的来自 A 的zmq 可以在环境的 PATH 中找到它需要的 DLL被激活的B
    • 有趣的是,其他运行良好的环境首先没有安装zeromq,只有my_env 安装。也许我在安装jupyterlab 时使用了不同的命令或通道。我可能应该坚持从环境中打开 jupyter 并为每个环境启动相应的内核。您是否在激活任何 env 之前打开 jupyter,以便您可以在不同的内核之间切换,或者在激活特定 env 后打开 jupyter 并且只使用激活的 env 的内核?约定是什么?
    • 似乎这可能是问题所在。可能是具有不同依赖项的不同 jupyterlab 版本。我发现通常最好激活环境然后启动 jupyter,因为其他软件包也无法找到必要的 dll(对我来说是 numpymatplotlib。如果您需要来自不同环境的 jupyter,只需激活他们并运行另一个实例
    • 谢谢,这让我明白了很多事情!真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2016-09-09
    • 2019-02-25
    • 2017-11-14
    相关资源
    最近更新 更多