【发布时间】:2020-01-26 21:51:45
【问题描述】:
我在 Visual Studio Code 中编写 Python 代码,并从已激活虚拟环境的终端运行程序,它运行良好。
但是,如果我使用 #%% 创建笔记本单元并以交互方式运行它们,则不会使用虚拟环境。我该如何解决这个问题?
【问题讨论】:
标签: visual-studio-code virtualenv jupyter
我在 Visual Studio Code 中编写 Python 代码,并从已激活虚拟环境的终端运行程序,它运行良好。
但是,如果我使用 #%% 创建笔记本单元并以交互方式运行它们,则不会使用虚拟环境。我该如何解决这个问题?
【问题讨论】:
标签: visual-studio-code virtualenv jupyter
尝试安装 Anaconda 扩展包。
当我在左下角使用此扩展程序在 Visual Studio Code 中编写代码时,我可以选择要在其中执行代码的虚拟环境。因此,安装此包应该可以解决问题。
【讨论】:
这是因为需要一个额外的步骤 - 您需要显式安装指向新 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
【讨论】:
python3 -m ipykernel install --user --name=projectname 命令对我有用。非常感谢
我发现使用 pipenv install ipykernel 一次性设置带有 Jupyter 内核的虚拟环境很容易(评论 rocksteady's answer)。
【讨论】:
尝试一些事情:
【讨论】:
现在让我给你看一个场景。在 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 内核。
【讨论】:
对我来说,通过将我的 venv 的路径添加到 settings.json 来解决,
现在自动检测内核
"python.pythonPath": "P:\Miniconda3_64bit\venv\Scripts\python.exe",
【讨论】:
对于 VSCode,您的 Jupyter 内核不一定使用与您在命令行中使用的相同的 Python 解释器。
使用Ctrl + Shift + P打开命令面板,选择“笔记本:选择笔记本内核”
然后选择你在终端使用的解释器
【讨论】:
您只需按照以下步骤编辑 Vscode 设置:
Open User settings
Notebook : Select Notebook kernel 选择所需的内核,使用快捷键Ctrl + Shift + P
在此处阅读更多信息:https://techinscribed.com/python-virtual-environment-in-vscode/
【讨论】:
在 macOS 上,我的 .venv/ 与我的 .ipynb 位于同一文件夹中
. .venv/bin/activate
pip install ipykernel
然后我在项目文件夹中重新启动 VSCode,打开笔记本,在 Select Kernel 下拉列表中看到 .venv/bin/python
选择它,现在它可以工作了。
【讨论】: