在 Jupyter Notebook 中使用 Python 虚拟环境

Use Python Virtual Environment in Jupyter Notebook

我经常发现这很有用,但我不确定是否有任何方法可以做到这一点。我经常在一个 python 项目上工作,在该项目中,我使用项目的虚拟环境和 Jupyter 笔记本启动项目。当我在 Jupyter notebook 中进行实验时,我开始将库添加到虚拟环境中。问题是如果我 运行

pip freeze > requirements.txt

在我的项目结束时,该文件将在我的虚拟环境中包含 jupyter 的库。有什么方法可以 运行 Jupyter notebook(例如在我的基本 conda 环境中)但使用与另一个虚拟环境关联的内核?这似乎是最好的解决方案,但我不确定这是否可行?我知道我可能可以做些什么来将这些从冻结的东西中移除,但这似乎是一种黑客攻击。我看不出有什么方法可以避免在目标虚拟环境中至少安装 ipykernel

  1. 在Jupyter kernels目录下新建一个目录。如果您不知道在哪里可以找到它,请在此处查看 (https://jupyter-client.readthedocs.io/en/stable/kernels.html)。

  2. 使用以下内容创建一个 kernel.json 文件:

{
 "argv": [ "/path-to-env/myenv/bin/python", "-m", "ipykernel",
          "-f", "{connection_file}"],
 "display_name": "myenv",
 "language": "python"
}
  1. 就是这样!现在您可以 运行 jupyter notebook 并且能够看到使用您的虚拟环境的内核。

这里有一篇博客对其进行了更详细的解释:https://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/