【问题标题】:Jupyter notebooks in Visual Studio Code does not use the active virtual environmentVisual Studio Code 中的 Jupyter 笔记本不使用活动虚拟环境
【发布时间】:2020-01-26 21:51:45
【问题描述】:

我在 Visual Studio Code 中编写 Python 代码,并从已激活虚拟环境的终端运行程序,它运行良好。

但是,如果我使用 #%% 创建笔记本单元并以交互方式运行它们,则不会使用虚拟环境。我该如何解决这个问题?

【问题讨论】:

    标签: visual-studio-code virtualenv jupyter


    【解决方案1】:

    尝试安装 Anaconda 扩展包。

    当我在左下角使用此扩展程序在 Visual Studio Code 中编写代码时,我可以选择要在其中执行代码的虚拟环境。因此,安装此包应该可以解决问题。

    【讨论】:

    • 我认为这个包已经被归档和退役了。
    【解决方案2】:

    这是因为需要一个额外的步骤 - 您需要显式安装指向新 Python 虚拟环境的 Jupyter 内核。您不能简单地从虚拟环境中激活 Jupyter-lab 或 Notebook。这以前也让我绊倒过。

    听从这里的建议:Using Jupyter notebooks with a virtual environment

    而且,事实上,您的内核仍然可能没有指向正确的 Python 二进制文件,在这种情况下,您需要更改上述建议过程中的一个建议:

    发件人:ipython kernel install --user --name=projectname

    收件人:python3 -m ipykernel install --user --name=projectname

    (此更正来自a comment to Jupyter Notebook is loading incorrect Python kernel #2563。)

    *别忘了重启 VSCode

    【讨论】:

    • 谢谢。我设置了 VS 代码,将我的 WSL 从 1 更新到 2。遇到防火墙问题。一旦全部解决 - 就剩下这个问题了。我以前从未如此高兴地找到堆栈答案。
    • python3 -m ipykernel install --user --name=projectname 命令对我有用。非常感谢
    • 对我不起作用!!!在单元格内我尝试了 !python --version ,仍然显示其他版本
    【解决方案3】:

    我发现使用 pipenv install ipykernel 一次性设置带有 Jupyter 内核的虚拟环境很容易(评论 rocksteady's answer)。

    【讨论】:

      【解决方案4】:

      尝试一些事情:

      1. 确保您可以从 Visual Studio Code 终端使用“ipython”提示符在相同的 Conda 环境中运行代码。
      2. 如果它有效,则有时是缓存问题,因此请关闭您的文件并打开一个新文件。

      【讨论】:

        【解决方案5】:

        现在让我给你看一个场景。在 Visual Studio Code 中选择解释器,然后在“# %%”下方编写代码。当你点击 Ctrl + Enter 的那一刻,你猜测 Visual Studio Code 使用的 IPython 内核不是你选择的解释器。在这种情况下,您可以编写以下代码来确定 IPython 内核使用的解释器。

        import sys
        print(sys.executable)
        

        这显示了 IPython 内核正在使用的可执行路径。如果您发现它没有采用正确的解释器,那么这对我有用。

        只需重新启动计算机。然后重新打开 Visual Studio Code 并重新选择解释器并再次点击 Ctrl + Enter。现在这一次 Visual Studio Code 应该采用正确的解释器及其 IPython 内核。

        See the final output image

        【讨论】:

          【解决方案6】:

          对我来说,通过将我的 venv 的路径添加到 settings.json 来解决,

          现在自动检测内核

          "python.pythonPath": "P:\Miniconda3_64bit\venv\Scripts\python.exe",

          【讨论】:

          • 接受的答案对我不起作用,但这解决了它。感谢分享!
          【解决方案7】:

          对于 VSCode,您的 Jupyter 内核不一定使用与您在命令行中使用的相同的 Python 解释器。

          使用Ctrl + Shift + P打开命令面板,选择“笔记本:选择笔记本内核”

          然后选择你在终端使用的解释器

          【讨论】:

            【解决方案8】:

            您只需按照以下步骤编辑 Vscode 设置:

            • 使用快捷键Ctrl + Shift + P打开Open User settings
            • 在搜索空间输入“env”
            • 在 Extensions -> Python 下,你会发现 Python: Venv Path
            • 在 linux 中键入您的环境“path/to/myenv/bin”或“path/to/myenv/Script/”的绝对路径
            • 重启 vsCode
            • 使用Notebook : Select Notebook kernel 选择所需的内核,使用快捷键Ctrl + Shift + P

            在此处阅读更多信息:https://techinscribed.com/python-virtual-environment-in-vscode/

            【讨论】:

              【解决方案9】:

              在 macOS 上,我的 .venv/ 与我的 .ipynb 位于同一文件夹中

              . .venv/bin/activate
              pip install ipykernel
              

              然后我在项目文件夹中重新启动 VSCode,打开笔记本,在 Select Kernel 下拉列表中看到 .venv/bin/python

              选择它,现在它可以工作了。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-07-15
                • 1970-01-01
                • 2018-02-13
                • 1970-01-01
                • 1970-01-01
                • 2021-06-26
                • 1970-01-01
                • 2021-05-06
                相关资源
                最近更新 更多