【问题标题】:Setting up Hydrogen and Atom with Anaconda on Windows在 Windows 上使用 Anaconda 设置 Hydrogen 和 Atom
【发布时间】:2020-11-06 09:04:19
【问题描述】:

我想使用 Hydrogen 包在 ATOM 中以交互方式运行 python。我希望能够通过双击工具栏中的 ATOM 图标或双击 .py 文件来启动 ATOM 会话,而不必通过命令行启动 ATOM。我在 Windows 10 上。我已经通过 Anaconda 发行版安装了 Python 3.8。我已经使用 pip install 来安装 ipykernel。

我收到了一系列似乎很常见的 Traceback 错误;

Traceback (most recent call last): File "C:\Users\BRB\anaconda3\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\BRB\anaconda3\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\BRB\anaconda3\lib\site-packages\ipykernel_launcher.py", line 15, in from ipykernel import kernelapp as app File "C:\Users\BRB\anaconda3\lib\site-packages\ipykernel__init__.py", line 2, in from .connect import File "C:\Users\BRB\anaconda3\lib\site-packages\ipykernel\connect.py", line 18, in import jupyter_client File "C:\Users\BRB\anaconda3\lib\site-packages\jupyter_client__init__.py", line 4, in from .connect import File "C:\Users\BRB\anaconda3\lib\site-packages\jupyter_client\connect.py", line 21, in import zmq File "C:\Users\BRB\anaconda3\lib\site-packages\zmq__init__.py", line 47, in from zmq import backend File "C:\Users\BRB\anaconda3\lib\site-packages\zmq\backend__init__.py", line 40, in reraise(*exc_info) File "C:\Users\BRB\anaconda3\lib\site-packages\zmq\utils\sixcerpt.py", line 34, in reraise raise value File "C:\Users\BRB\anaconda3\lib\site-packages\zmq\backend__init__.py", line 27, in _ns = select_backend(first) File "C:\Users\BRB\anaconda3\lib\site-packages\zmq\backend\select.py", line 28, in select_backend mod = import(name, fromlist=public_api) File "C:\Users\BRB\anaconda3\lib\site-packages\zmq\backend\cython__init__.py", line 6, in from . import (constants, error, message, context, ImportError: DLL load failed while importing error: The specified module could not be found.

我尝试过的事情:

  1. 我首先将 Python3 可执行文件添加到系统 PATH(违反 Anaconda 的建议)。如果我通过命令行启动 ATOM,这确实有效,但如果我双击 ATOM 图标或 .py 文件,我会得到通常的回溯错误。

这个答案https://discuss.atom.io/t/solved-how-to-use-the-hydrogen-package/30190 说这是 Atom 在旧版本 Atom 上的 macOS 机器上的问题,但此后已针对 macOS 进行了更正。答案是 4 年前,所以我认为它已针对 Windows 进行了更正,但我找不到解决方案。

  1. 这个答案Setting up Hydrogen and Atom with Anaconda managing python installation 对 (A) 说:

    conda 激活 myenv python -m ipykernel install --user

和 (B) 清理 PATH。

这两件事我都做过。从 PATH 中删除 Python3 可执行文件是一个倒退。现在它甚至从命令行也不起作用。我也不明白为什么这首先会很糟糕......

  1. Atom: Setting up Hydrogen Launcher for use with Python 3.7 这个家伙也有同样的问题。但没有解决办法。

有人能指出正确的方向吗?

我比较新,所以在这个阶段不希望通过设置多个虚拟环境等来使事情复杂化(我还没有需要,我想要简单)。

【问题讨论】:

  • 你设法让它工作了吗?
  • 还没有。我仍然从 anaconda 命令提示符启动 atom,这并不理想,但还没有返回尝试寻找解决方案。除非您有解决方案,否则我确实需要在某个阶段回到这个问题???
  • stackoverflow.com/questions/59509336/… 这里的 cmets 提到在 windows 和 python 3.8 上他们有类似的导入问题 - 你尝试了不同的 python 版本吗?你在使用虚拟环境吗?

标签: python anaconda atom-editor hydrogen


【解决方案1】:

我广泛使用 Atom + Hydrogen。它适用于任何 python 版本,如果它使用 Anaconda、Miniconda 或简单的 python。 请不要乱用系统环境PATH

也许你对哪个 python 可执行文件是哪个感到困惑。或者,Atom.exe 和 Hydrogen 是否使用相同版本、相同路径的 python 可执行文件?

原子之类的

我确信 Atom.exe 使用系统范围或虚拟环境中存在的默认 python 版本。如果你在没有虚拟环境的情况下从终端运行 Atom.exe,或者只是从桌面双击图标,Atom.exe 将使用系统中可用的 python。

但如果你从虚拟环境激活的终端/cmd 运行 Atom.exe,那么 Atom.exe 将使用虚拟环境中可用的 python。

为什么重要?如果您使用 Atom.exe 包,例如 python-import-magic,Atom.exe 会要求您提供名为 isort 的 python 包。如果您在名为work 的虚拟环境中安装了isort,Atom.exe 将始终告诉您isort 不可用,除非您从work 虚拟环境启动Atom.exe。

那么,我应该从虚拟环境激活终端启动 Atom.exe 吗?我认为这不是一个好主意。

氢的东西

无论安装了多少 python 或创建了多少虚拟环境,Hydrogen 都将使用已安装/注册的 python 可执行文件内核。例如,我安装了几个 python 版本(是的,抱歉我不使用 pipenv),它们位于:

  • D:\python\python37\python.exe 中的python37
  • D:\python\python38\python.exe 中的python38

然后我想将 Hydrogen 与使用 python37 的内核一起使用,我应该安装内核一次

D:\python\python37\python.exe -m ipykernel install --name "python37_something"

或者如果我需要 python38

D:\python\python38\python.exe -m ipykernel install --name "python38_something"

或者我只想用系统范围内可用的任何 python 安装内核:

python.exe -m ipykernel install --name "python_for_the_win"

之后,安装的内核会出现在 Hydrogen(甚至是 Jupyter Notebook/Lab)内核选择中。截图如下。

但是如果我使用虚拟环境呢?只需切换到虚拟环境并安装内核即可。例如,如果我想在 Hydrogen 中使用名为 work 的虚拟环境,我应该先激活虚拟环境并安装一次内核:

workon work
python -m ipykernel install --name "work_venv"

或者如果您使用的是 conda:

conda activate work
python -m ipykernel install --name "work_env"

work 虚拟环境将出现在 Hydrogen 内核选择中。这里以我安装的内核为例:

重要的是,您应该使用--name 参数命名已安装的ipykernel,然后选择更有意义的名称,例如workflask development 或任何您喜欢的名称,但不要使用python 或@987654343 @。 --user 参数取决于您的需要。

为什么我不能使用 'python' 或 'python3' 作为内核名称?

如果你坚持跑:

python -m ipykernel install --name "python"

python -m ipykernel install --name "python3"

甚至是来自official nteract page的指令:

python -m ipykernel install

无论是否从虚拟环境,都会安装内核,但是内核的位置会根据虚拟环境或系统python路径而有所不同。请看我的截图。

后面的终端没有激活虚拟环境,前面的终端正在使用名为work的虚拟环境。当我从两个终端运行jupyter kernelspec list 时,会列出所有已安装的内核,并且它们的文件路径在两个终端上都是相同的。 除了python3,我不知道为什么,但似乎pythonpython3ipykernels内核的默认名称,并且在安装内核时也是没有名字

如果没有从虚拟环境激活终端运行 atom.exe,您将无法选择从 Atom+Hydrogen 运行哪个 python3

奖金

您可能会注意到,在我上面的上一个屏幕截图中,'domainopsy' 和 'javascript' 安装在 C:\Users\faruq 目录中,这似乎是因为我在安装内核时通过了--user,而 'gym' 和 'work'不是。我认为,如果我使用其他用户名登录,则无法访问“domainopsy”和“javascript”。

请原谅我的英语,本文是根据我的经验写的,如有错误请指正。

【讨论】:

  • 嗨桑迪。非常感谢你。赏金将在 50 分钟后到期,直到今晚我才有时间看看这是否能解决我的问题。我现在将标记为已接受,以便您在它消失之前获得赏金(不确定它是如何工作的)。万一遇到问题,如果我能用一些后续问题麻烦您,不胜感激。
  • 当你说“我总是使用虚拟环境。所以如果我想使用名为 'work' 的 Hydrogen 虚拟环境,我应该第一次注册它。”所以如果你不想在虚拟环境之间切换,你只需要这样做一次吗?在 Anaconda 命令提示符下,您在哪里键入后续行?您是否需要 .py 脚本顶部的任何内容来将 Hydrogen 引导到您使用的任何环境/内核?
  • 嗨,brb!我还在工作,请让我稍后再回复,我想 2 小时后。
  • 顺便说一句,别担心bouties。我也不知道是什么。我是来帮你的。
  • 你好,brb! 1)所以如果你不想在虚拟环境之间切换,你只需要这样做一次吗?是的。顺便说一下,虚拟环境之间的切换,是不是说你打开终端/cmd,把环境改成什么东西,从终端本身运行atom.exe?
猜你喜欢
  • 2020-03-04
  • 2015-07-01
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 2021-07-20
  • 2017-08-29
  • 2020-02-09
相关资源
最近更新 更多